ホームページ >バックエンド開発 >PHPチュートリアル >私の PHP コードで「パラメーター 2 を参照で渡すことができません」エラーがスローされるのはなぜですか?
PHP の「パラメータ 2 を参照で渡すことはできません」エラーについて理解する
PHP では、パラメータを参照で渡すと、渡された変数に変更を加えることができます。元の変数に反映されます。ただし、パラメーターが参照によって渡されることが期待されているにもかかわらずそうでない場合は、「パラメーター 2 を参照によって渡すことはできません」というエラーが発生する可能性があります。
特定のエラー シナリオ: 日付比較を使用した UPDATE クエリ
次の PHP コードを考えてみましょう:
$selectedDate = date('d-m-Y', ($createDate)); $sql = "UPDATE Session SET Active = ? WHERE DATE_FORMAT(SessionDate,'%Y-%m-%d' ) <= ?"; $update = $mysqli->prepare($sql); $update->bind_param("is", 0, $selectedDate); // Line 13
Inこの例では、行 13 は準備されたステートメントに 2 つのパラメーターをバインドしようとします。
ただし、2 番目のパラメーターは変数への参照であることが期待されます。 「is」タイプ文字列の「s」で示されます。参照によって渡されないため、「パラメーター 2 を参照によって渡すことはできません」というエラーがスローされます。
解決策: 変数参照を渡す
このエラーを解決するには、次のように渡します。以下に示すように、2 番目のパラメーターへの変数参照:
$isActive = 0; $update->bind_param("is", $isActive, $selectedDate);
$isActive を参照渡しすることで、変更が加えられます。プリペアドステートメント内のそれは、元の変数に反映されます。
PHP の参照について
PHP の参照の詳細については、次のドキュメントを参照してください。 : http://php.net/manual/en/ language.references.pass.php.
以上が私の PHP コードで「パラメーター 2 を参照で渡すことができません」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。