"php warning mysql_fetch_assoc" Mystified?
MySQL データベースからデータを取得しようとすると、当惑させるような "mysql_fetch_assoc" が発生することは珍しくありません。 (): 指定された引数は有効な MySQL 結果リソースではありません」という警告が表示されます。この問題は、mysql_fetch_assoc() 関数に渡された引数が有効な結果セット ポインターではない場合に発生します。
原因を理解する
mysql_fetch_assoc() 関数は次のように設計されています。 MySQL 結果セットから連想配列を抽出します。結果セットは、mysql_query() でクエリを実行することによって取得されます。したがって、mysql_fetch_assoc() に渡される引数は、通常、mysql_query() によって返される有効な結果セット ポインターである必要があります。
コードの詳細
提供されたコード スニペットでは、問題は 2 行目です:
<code class="php">$mus = mysql_fetch_assoc($musicfiles);</code>
変数 $musicfiles には MySQL 結果セット ポインターが含まれていません。代わりに、getmusicfiles() への関数呼び出しの結果が含まれます。この関数はクエリを実行して結果を返しているように見えますが (おそらく mysql_query() を使用していると思われます)、戻り値は変数に格納されていません。
正しいアプローチ
この問題を解決するには、mysql_query() 呼び出しの結果を変数に割り当てる必要があります。コードの関連部分を書き直す方法は次のとおりです。
<code class="php">$result = getmusicfiles($records['m_id']); $mus = mysql_fetch_assoc($result);</code>
mysql_query() の結果を $result に割り当てることで、mysql_fetch_assoc() が使用できる有効な結果セット ポインタを確実に持つようになります。
以上が「mysql_fetch_assoc(): 指定された引数は有効な MySQL 結果リソースではありません」という警告が表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。