- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 mysql 中创建了一个名为“Insertusers”的存储过程,其中包含 8 个参数。
现在我想使用我的模型调用此过程并使用此过程在表中插入值。
这是我模型的代码:
<?php
class Insertuser extends Eloquent {
protected $guarded = array();
public static function storedProcedureCall() {
return DB::statement('Insertusers');
}
public static $rules = array();
}
?>
这是我的 Controller 代码:
public function createUser() {
$clan = new Insertuser;
$clan->clanname = Input::get('clanname');
$clan->description = Input::get('tbx_new_clan_Des');
if (Input::get('chk_new_clan_Status')) {
$clan->active = true;
} else {
$clan->active = false;
}
if (Input::get('chk_new_clan_Incoming')) {
$clan->allow_incoming = true;
} else {
$clan->allow_incoming = false;
}
if (Input::get('chk_new_clan_key')) {
$clan->clan_key = Input::get('tbx_new_clan_key');
}
$clan->created_by = Session::get('userid');
$clan->last_updated_by = Session::get('userid');
$clan->DOMType=1;
$clan->save();
}
当我尝试创建用户时,出现以下错误:
SQLSTATE[42S02]: 未找到基表或 View 。
请帮帮我。谢谢。
最佳答案
MSSQL 要求声明过程中的变量,人们使用 @Variable 语法 (DECLARE @TEXT VARCHAR(25) = 'text')。此外,MS 允许在过程的任何 block 内进行声明,这与 mySQL 不同,后者需要在顶部进行所有 DECLARE。
虽然在命令行上很好,但我觉得在 mySQL 的存储过程中使用“set = @variable”是有风险的。没有作用域,变量存在于作用域边界之外。这类似于 JavaScript 中没有“var”前缀声明的变量,它们是全局命名空间并会产生意外的冲突和覆盖。
我希望 mySQL 的优秀人员将允许在存储过程中的各个 block 级别上使用 DECLARE @Variable。注意@(符号)。 @ 符号前缀有助于将变量名称与表列名称分开 - 因为它们通常是相同的。当然,总是可以添加“v”或“l_”前缀,但 @ 符号是一种方便而简洁的方式,可以让变量名称与您可能从中提取数据的列相匹配,而不会破坏它。
MySQL 是存储过程的新手,他们的第一个版本做得很好。很高兴看到他们在这里采取它的形式,并看到语言的服务器端方面成熟。
关于php - 如何在 laravel 中使用模型调用参数化存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24080419/
我是一名优秀的程序员,十分优秀!