「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 サイトの他の関連記事を参照してください。