1

変数を使用してストアド プロシージャを実行したときに問題が発生しました。

INSERT INTO table_walkinleads
VALUES('', FirstName, LastName, Phone, Email, NOW())

しかし、これはphpmyadminで完全に機能していました。私のphpコードではそうではありませんでした。

そして、主な理由はこれが原因でした。

foreach($params as $name => $value ) {   
    $this->query->bindParam($name,$value);
}

$valueforeach ステートメントの変数を注意深く見てください。以前はそうだった。しかし、いくつかの調査の後、私はそれが必要であることに気づきました&$value。しかし、なぜ?違いはなんですか?その参照を値変数に追加するだけで、ストアド プロシージャが正しく動作するようになるのはなぜですか?

foreach($params as $name => &$value ) {   
    $this->query->bindParam($name,$value);
}

PS: エラーはまだストアド プロシージャを実行していましたが、最後の変数はストアド プロシージャ内のすべての変数に対して同じ値として挿入されました。すべてのストアド プロシージャ変数に同じ変数を入力したように見えます。

この動作とその背後にある理由について説明できる人はいますか?

4

0 に答える 0