ホームページ >バックエンド開発 >PHPチュートリアル >PDO の定数で「bindParam」が失敗する理由とその修正方法

PDO の定数で「bindParam」が失敗する理由とその修正方法

Susan Sarandon
Susan Sarandonオリジナル
2024-11-23 07:55:19913ブラウズ

Why Does `bindParam` Fail with Constants in PDO and How to Fix It?

bindParam に定数を渡す: エラーと解決策

PDO では、bindParam メソッドを使用して、参照によって変数をステートメント パラメーターにバインドできます。ただし、PDO::PARAM_NULL などの定数値をバインドしようとすると、「パラメータ 2 を参照で渡すことができません」というエラーが発生することがあります。

エラーの原因:

bindParam には、参照によってパラメータにバインドされる 2 番目の引数として変数が必要です。定数値を直接渡そうとすると、定数は参照によって渡すことができないため、エラーが発生します。

解決策:

定数値をステートメントのパラメータにバインドするには、bindValue を使用します。代わりにメソッドを使用します。 bindValue は変数を値でバインドします。つまり、参照を作成するのではなく、メソッドの呼び出し時に値をコピーします。

修正コード:

$stmt->bindValue(':v1', null, PDO::PARAM_NULL);

を使用します。 bindValue を使用すると、「パラメータ 2 を参照で渡すことができません」というエラーが発生することなく、定数値をステートメントのパラメータに正しくバインドできます。 null 値には、PDO::PARAM_INT や ''.

ではなく、必ず PDO::PARAM_NULL を使用してください。

以上がPDO の定数で「bindParam」が失敗する理由とその修正方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。