2011-11-16 77 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

打印查詢,並看它好不好 –

+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