2016-04-26 353 views
2

2つのOUTパラメータを持つストアドプロシージャを呼び出す際に問題があります。私はそれらにアクセスすることはできません。ここでLaravelで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)"); 

私は2つの空の変数を渡す必要があれば、私は知らないし、出力の値を返すか、それがステートメントの戻り値かどうかを調べます。

2つの空の変数を渡すと、Laravelはそれらが定義されていないことを伝えます。私がそれらを渡さないと、Laravelは手続きが5ではなく7つのパラメータを待っていることを教えてくれます。

答えて

3

OUTパラメータでは、MySQL変数を扱っています。

$status, $messageの代わりに@status, @messageを使用してください。また、バインディングを使用して他の値を渡すこともできます。

いずれにしても、これらの変数にはPHP変数が設定されません。 PHPでそれらを入手したい場合は、それらを選択する必要があります。 SELECT @status, @messageDB::selectを使用してください。

関連する問題