ホームページ > バックエンド開発 > PHPチュートリアル > 「mysql_fetch_array()」で「パラメータ 1 がリソースであることが期待されます」と表示されるのはなぜですか?

「mysql_fetch_array()」で「パラメータ 1 がリソースであることが期待されます」と表示されるのはなぜですか?

Linda Hamilton
リリース: 2024-12-22 20:17:12
オリジナル
617 人が閲覧しました

Why Does `mysql_fetch_array()` Show

「mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows など...パラメータ 1 がリソースであることを期待します」エラーを理解する

こんなことに遭遇したらエラーは、データベース取得関数 (mysql_fetch_array()、mysql_fetch_assoc() など) の 1 つが無効なパラメータで呼び出されていることを示します。具体的には、パラメータはデータベースの結果セットを表すリソースである必要がありますが、代わりにブール値です。

エラーの原因

この根本的な原因通常、エラーはデータベース クエリの失敗です。クエリが失敗すると、mysql_* 関数/メソッドは false を返しますが、これはブール値として誤って解釈される可能性があります。その結果、その後、偽の結果で取得関数を呼び出すと、このエラーが発生します。

エラーの修正

この問題を解決するには、次のことを行う必要があります。次の手順に従います:

  1. クエリ結果を確認します: mysql_query() の結果をチェックして、mysql_query() 呼び出しが false を返さないことを確認します。
  2. クエリの失敗の処理: クエリが失敗した場合は、エラーをトリガーするか、適切に処理します。
  3. 適切なパラメータを確認します: ブール値ではなく、正しい結果リソースを取得関数に渡します

次のコードを考えてみましょう:

$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_query() の結果を取得し、クエリが失敗した場合はエラーをトリガーします。次に、$result リソースを mysql_fetch_array() 関数に正しく渡します。これにより、適切なパラメータが使用され、エラーの発生が防止されます。

以上が「mysql_fetch_array()」で「パラメータ 1 がリソースであることが期待されます」と表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート