ホームページ >データベース >mysql チュートリアル >PHP で「mysql_fetch_array() はパラメータ 1 がリソースであることを期待しており、ブール値が指定されています」というエラーが発生するのはなぜですか?

PHP で「mysql_fetch_array() はパラメータ 1 がリソースであることを期待しており、ブール値が指定されています」というエラーが発生するのはなぜですか?

DDD
DDDオリジナル
2024-12-22 06:05:09579ブラウズ

Why Am I Getting the

エラー メッセージ: 「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 サイトの他の関連記事を参照してください。

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