我在调用具有两个 OUT 参数的存储过程时遇到问题。我无法访问它们。
这是我的程序的第一行:
PROCEDURE `validate_reservation`(IN people INT, IN r_date DATETIME,IN place_id INT,IN max_people INT,IN more_people TINYINT(1),OUT r_status CHAR(20),OUT message CHAR(100))
这是我在 Laravel 5 中的调用方式:
DB::statement("call validate_reservation(4,'2016-04-26 20:30',1,10,1,$status,$message)");
我不知道是否必须传递两个空变量,它们将改变输出的值,或者这是否是语句的返回。
如果我传递两个空变量,Laravel 会告诉我它们没有定义。如果我没有传递它们,Laravel 会告诉我该过程正在等待 7 个参数,而不是 5 个。
最佳答案
使用 OUT 参数,您正在处理 MySQL 变量 - 这些变量以 @ 为前缀。
因此,请使用@status, @message
而不是$status, $message
。另外,您可能希望使用绑定(bind)来传递其他值。
在任何情况下,这些都不会填充 PHP 变量。如果你想在 PHP 中获取它们,你需要选择它们,例如使用
。DB::select
选择@status、@message
关于php - 在 Laravel 中使用带有 OUT 参数的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36877656/