ホームページ > バックエンド開発 > PHPチュートリアル > MySQL のフェッチ関数が「パラメータ 1 がリソースであることを期待する」を返すのはなぜですか?

MySQL のフェッチ関数が「パラメータ 1 がリソースであることを期待する」を返すのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-23 03:02:35
オリジナル
156 人が閲覧しました

Why Do MySQL Fetch Functions Return

「mysql_fetch_...」予期されるリソース エラーについて理解する

mysql_fetch_array()、mysql_fetch_assoc()、mysql_fetch_row などの MySQL 関数を使用する場合()、 そしてmysql_num_rows を使用すると、「mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... パラメータ 1 がリソースであることを期待しています。」

このエラーは、関数の最初のパラメータがは有効なデータベース リソースではありません。データベース リソースは通常、mysql_query() の呼び出しが成功すると取得されます。 mysql_query() がクエリの実行に失敗すると、false が返されます。

問題への対処

このエラーを解決するには、クエリが正常に実行されたことを確認する必要があります。結果リソースをフェッチ関数に渡す前に。これには、mysql_query() の戻り値のチェックとそれに応じたエラー条件の処理が含まれます。

mysql_extension の例

<?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 インジェクションを防ぐためのクエリのユーザー名文字列。 mysql_query() の戻り値をチェックし、クエリが失敗した場合はユーザー エラーをトリガーします。クエリが成功した場合、mysql_fetch_array() 関数で結果リソースを安全に使用できます。

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

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