変数を使用してストアド プロシージャを実行したときに問題が発生しました。
INSERT INTO table_walkinleads
VALUES('', FirstName, LastName, Phone, Email, NOW())
しかし、これはphpmyadminで完全に機能していました。私のphpコードではそうではありませんでした。
そして、主な理由はこれが原因でした。
foreach($params as $name => $value ) {
$this->query->bindParam($name,$value);
}
$value
foreach ステートメントの変数を注意深く見てください。以前はそうだった。しかし、いくつかの調査の後、私はそれが必要であることに気づきました&$value
。しかし、なぜ?違いはなんですか?その参照を値変数に追加するだけで、ストアド プロシージャが正しく動作するようになるのはなぜですか?
foreach($params as $name => &$value ) {
$this->query->bindParam($name,$value);
}
PS: エラーはまだストアド プロシージャを実行していましたが、最後の変数はストアド プロシージャ内のすべての変数に対して同じ値として挿入されました。すべてのストアド プロシージャ変数に同じ変数を入力したように見えます。
この動作とその背後にある理由について説明できる人はいますか?