2010-05-28 68 views
1

當傳遞無效的SQL字符串時,我收到了此錯誤...我花了最後一小時試圖找到問題 - 這不是我的SQL,它必須是數據庫句柄... ANYWAY,我現在已經知道這是不好的SQL ...mysql_num_rows():提供的參數不是有效的MySQL結果資源

我想要做的是測試mysql_query()的結果爲有效的結果集。

我只是使用空($ result)...這是最有效的測試嗎?是否有更廣泛接受的方法來測試結果集的有效結果?

+0

[警告可能重複的錯誤:mysql_fetch_ *預期參數1是資源,布爾給定錯誤](http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter-1-to-be-resource-boolean-given-error) – 2012-07-31 02:15:19

+0

可能的重複[警告:mysql_fetch_array():提供的參數不是有效的MySQL結果](http:// stackoverf low_quicks/795746/warning-mysql-fetch-array-supplied-argument-is-not-a-valid-mysql-result) – 2012-08-09 20:17:27

+0

[mysql_num_rows():提供的參數可能重複不是有效的MySQL結果資源](http://stackoverflow.com/questions/3698740/mysql-num-rows-supplied-argument-is-not-a-valid-mysql-result-resource) – Fluffeh 2012-08-10 09:02:38

回答

3

mysql_query將返回false如果有錯誤

$result = mysql_query('select * from'); 
if ($result === false) { 
    // caused by my invalid input above 
} else { 
    // process as usual 
} 

事實上,你得到你的描述,因爲你從字面上打電話mysql_num_rows(false)

+0

你也可以用'if(!結果)'。但是,您應該考慮學習PDO或mysqli擴展,因爲您正在使用的擴展名不支持準備好的語句和其他應該被視爲基準的好東西。 – Erik 2010-05-28 01:12:01

+1

@Erik - 你有有效的分數,但我更喜歡總是使用嚴格的平等('===')。此外,我不使用'mysql'庫,OP做:) – Matt 2010-05-28 01:13:41

相關問題