2010-05-28 73 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

相关问题