Php 在Laravel中使用带OUT参数的存储过程

Php 在Laravel中使用带OUT参数的存储过程,php,mysql,laravel,stored-procedures,laravel-5,Php,Mysql,Laravel,Stored Procedures,Laravel 5,调用具有两个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)) 以下是我在《拉威尔5》中对它的称呼: DB::statement("c

调用具有两个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))
以下是我在《拉威尔5》中对它的称呼:

DB::statement("call validate_reservation(4,'2016-04-26 20:30',1,10,1,$status,$message)");
我不知道是否必须传递两个空变量,它们将转换输出值,或者这是语句的返回


如果我传递两个空变量,Laravel告诉我它们没有定义。如果我不传递它们,Laravel告诉我过程正在等待7个参数,而不是5个参数。

如果没有参数,您将处理MySQL变量-这些变量的前缀是@

因此,请使用
@status,@message
而不是
$status,$message
。此外,您可能希望使用绑定来传递其他值

在任何情况下,这些都不会填充PHP变量。如果您想在PHP中获取它们,您需要选择它们,例如使用
DB::SELECT
选择@status、@message