ホームページ >データベース >mysql チュートリアル >PDO が「パラメーター 2 を参照で渡せません」エラーをスローするのはなぜですか? それを修正するにはどうすればよいですか?
PDO のbindParam の「パラメータ 2 を参照で渡すことはできません」エラーを理解する
データベース対話に PDO を使用するコンテキストでは、次のことが考えられます。 「パラメーター 2 を参照によって渡すことはできません。」というエラーが発生します。このエラーは、bindParam メソッドを使用してパラメータを定数値に設定しようとすると発生します。これを解決するには、bindParam と bindingValue の違いを理解することが重要です。
bindParam は参照によって変数を受け取ります。定数値の場合、バインドする参照がないため、エラーが発生します。一方、bindValue は値を直接必要とし、それをステートメントにコピーするため、参照の必要がなくなります。
そのため、エラーを解決するには、定数値にはbindParamの代わりにbindValueを使用することをお勧めします。次の例は正しい使用法を示しています。
$stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)'); $stmt->bindValue(':v1', null, PDO::PARAM_INT); // Using bindValue for constant value
bindValue を PDO::PARAM_NULL とともに使用すると、すべてのケースで機能するとは限らないことに注意することが重要です。問題が発生した場合は、代わりに 0 などの定数値または空の文字列を使用してみてください。
以上がPDO が「パラメーター 2 を参照で渡せません」エラーをスローするのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。