2011-04-29 60 views
2

我想要做這樣的事情在我的查詢:比較1個參數多個字段在MySQL

$query = $mysqldb->make_query("SELECT * FROM dvd WHERE 
NAME LIKE '%{$str_param}%' OR 
CATEGORY={$str_param} OR 
TYPE={$str_param} OR BOOK={$str_param} OR 
PAGE={$str_param}"); 

在那裏,我只用1個參數,它會比任何字段。但我得到這個警告:

mysql_fetch_assoc() expects parameter 1 to be resource, boolean given 

請幫助,在此先感謝。

+0

可能的重複[警告:mysql_fetch_ *期望參數1是資源,布爾給定錯誤](http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter-1-tobe -resource布爾給出的誤差) – 2012-08-02 15:55:54

回答

2

您的查詢中有錯誤,make_query返回FALSE而不是resource

由於str_param通常假定一個字符串,你應該將其括入單引號:

SELECT * FROM dvd WHERE 
NAME LIKE '%{$str_param}%' OR 
CATEGORY='{$str_param}' OR 
TYPE='{$str_param}' OR BOOK='{$str_param}' OR 
PAGE='{$str_param}' 

確保你使用的任何用戶提供的數據mysql_real_escape_string避免SQL注射。