ホームページ >データベース >mysql チュートリアル >PHP で「mysql_fetch_array() はパラメータ 1 がリソースであることを期待しており、ブール値が指定されています」というエラーが発生するのはなぜですか?
エラー メッセージ: 「mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows など...パラメータ 1 はリソースであることが期待されており、ブール値が指定されています」
これ最初のパラメータとしてリソースを期待する関数を呼び出すとエラーが発生しますが、代わりにブール値が渡されます。この特定のケースでは、クエリが失敗し、偽の値が返されたことを示しています。
解決策:
この問題を解決するには、データ取得関数に渡す前の MySQL クエリ。 PHP の mysql_ 拡張機能で、mysql_query() を使用し、その戻り値をテストします。クエリが失敗した場合は、それに応じてエラーを処理するか、トリガーを発行できます。
改善されたエラー処理の例を次に示します:
<?php $username = mysql_real_escape_string($_POST['username']); $password = $_POST['password']; $result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'"); if ($result === FALSE) { trigger_error(mysql_error(), E_USER_ERROR); } while ($row = mysql_fetch_array($result)) { echo $row['FirstName']; } ?>
mysql_real_escape_string() を使用してユーザー入力をサニタイズすることで、また、クエリ失敗の原因となる可能性がある SQL インジェクション攻撃を防ぐこともできます。
以上がPHP で「mysql_fetch_array() はパラメータ 1 がリソースであることを期待しており、ブール値が指定されています」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。