1

重複の可能性:
警告: mysql_fetch_array(): 指定された引数は有効な MySQL 結果ではありません

検索を行いましたが、特に役立つものは見つかりませんでした。

あなたが助けてくれることを願っていました。

2 つの基準 (type = green AND on = yes) を満たすエントリをテーブルで検索する MySQL クエリを実行したいと思います。

警告: mysql_fetch_array(): 提供された引数は、36 行目の /link/to/my/file.php の有効な MySQL 結果リソースではありません

コードからの抜粋 (36 行目) は次のとおりです。

`$green = "SELECT * FROM homepage_vars WHERE type = 'green' AND on = 'yes'";
 $green = mysql_query($green);
 $green = mysql_fetch_array($green);`
4

1 に答える 1

7

ONMySQL の予約キーワードです。列またはテーブルの識別子として使用する場合は、逆引用符で囲む必要があります。

SELECT * FROM homepage_vars WHERE type = 'green' AND `on` = 'yes'

クエリ構文が修正されると、別の問題が発生します。$green変数を数回上書きしました。元々、クエリ SQL を保持していましたが、クエリ結果リソースに使用されました。それは問題ありませんが、フェッチした行で上書きしmysql_fetch_array()、その内容は配列またはFALSE. $greenは結果リソースではないため、その後の行のフェッチの試行は失敗します。

行のフェッチを試行する前に、クエリの成功または失敗を必ずテストしてください。を呼び出しmysql_error()て、MySQL サーバーによって報告されたエラーを確認します。このエラーは、 'onまたは類似のものの近くで無効な構文を示している可能性があります。

$green = "SELECT * FROM homepage_vars WHERE type = 'green' AND on = 'yes'"; 
$query = mysql_query($green); 
if ($query) {
  // Don't overwrite your query resource!
  // Use a new variable!
  $row = mysql_fetch_array($query);
}
else {
  // Failure!
  echo mysql_error();
}
于 2012-05-26T14:56:45.420 に答える