2011-11-16 11 views
0

Possible Duplicate:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL resultMySQLのエラー

私はこのエラーを発見した私のサイトのログエラーファイルをチェックすると:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/mysite/public_html/include/config.php on line 17

をライン17は、次のとおりです。

$rows=mysql_fetch_assoc($query); 

そして、このライン関数内にあります:

function get_val($val,$table,$where,$return){ 
    $query=mysql_query("select $val from $table $where"); 
    $rows=mysql_fetch_assoc($query); 
    return $rows[''.$return.'']; 
    mysql_free_result($query); 
} 

ブラウザにエラーはありませんが、このメッセージはlog_fileエラーにあります。

+0

印刷クエリを、したがって、無効または空白とされ、私はあなたの入力値の1疑わない –

+0

それは大丈夫ですかご覧くださいクエリは有効ではありません。私はあなたのデザインを再考することを強くお勧めします。コードの残りの部分を見ることなく、このような関数は簡単にコードの分離を招く危険があります。後で 'コスト'に変更したい「価格」というフィールドがある場合は、その変更を行う必要がある場所を特定するだけで本当の問題が生じる可能性があります。 – liquorvicar

答えて

0

リソースがnullかどうかをチェックする必要があります。

function get_val($val,$table,$where,$return){ 
    $query=mysql_query("select $val from $table $where"); 
    if($query) 
    { 
     $rows=mysql_fetch_assoc($query); 

     mysql_free_result($query); 
     return $rows[$return]; 
    } 
    return null; 
} 
-1

また、代わりにヌルのための$クエリチェックの@置いてもよい:

$query = mysql_query(...); 
while ($row = @mysql_fetch_assoc($res)) { 
    .... 
} 
+0

-1ここに記載されていないエラーを抑制します。彼は動的にクエリを作成しており、スクリプトが投げているエラーを実際にキャプチャする必要があります。 – liquorvicar