ホームページ  >  記事  >  データベース  >  私の PHP スクリプトが「mysql_fetch_array(): Parameter 1 Should Be a Resource」をスローするのはなぜですか?

私の PHP スクリプトが「mysql_fetch_array(): Parameter 1 Should Be a Resource」をスローするのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 16:42:02383ブラウズ

Why Does My PHP Script Throw

mysql_fetch_array(): パラメータ 1 はリソースである必要があります

PHP スクリプトで、「mysql_fetch_array() にはパラメータが必要です」というエラーが発生します1 はリソースになります。」これは、関数が間違ったタイプのパラメータを受け取っていることを示しています。

エラー ソース

問題は次の行に起因します:

<code class="php">$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);</code>

この行はデータベースに対してクエリを実行します。クエリが失敗した場合、または結果がない場合、関数はクエリの成功または失敗を示すブール値を返します。ただし、mysql_fetch_array() 関数は、クエリが成功した結果であるリソースを最初のパラメータとして期待します。

解決策

問題を解決するには、次のことを行う必要があります。 mysql_query() の戻り値をチェックして、それがリソースであることを確認します。これを行うには、クエリ行の後にエラー チェックを追加します。

<code class="php">$result = mysql_query("SELECT * FROM student WHERE IDNO=".$_GET['id']);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}</code>

クエリが失敗した場合、エラー メッセージが表示され、スクリプトが終了します。

追加の考慮事項

この問題とは別に、データベース対話には、非推奨の mysql_* 関数の代わりに、改良された MySQLi または PDO 拡張機能を使用することをお勧めします。これらの拡張機能は、強化されたセキュリティおよびパフォーマンス機能を提供します。

以上が私の PHP スクリプトが「mysql_fetch_array(): Parameter 1 Should Be a Resource」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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