我在此代码中遇到查询问题。问题是我之前遇到的问题,$num = mysql_num_rows($result);
部分给了我一个MySQL错误,说它预计会有资源。通常当我有这个错误时,这是因为我把一个单引号放错了位置,但看了之后我找不到任何问题,尽管这个查询比我通常要处理的要复杂一些。
//connect to the database and stuff
$last_year = idate("Y")-1;
$month = date("m");
$day = date("d");
$query = "SELECT bills.b_id, bills.c_id, bills.grand_total, bills.void, bills.date_added,
customers.b_name, customers.l_name, customers.f_name, customers.phone
FROM bills, customers
WHERE bills.c_id = customers.c_id
AND bills.void = '0'
AND date_added BETWEEN '".$last_year."-".$month."-".$day."' AND CURDATE()";
$result = mysql_query($query);
mysql_close($link);
$num = mysql_num_rows($result);
修改
虽然我已经知道mysql_close()
函数不是问题但我继续删除它,我的代码仍然不起作用。这个 EXACT 相同的代码(查询除外)适用于其他十几个页面。 问题在于查询,MySQL错误(如前所述)是mysql_num_rows() expects parameter 1 to be resource
。我正在努力解决具体的错误。
答案 0 :(得分:1)
为您的代码添加一些错误处理。
$result = mysql_query($query);
if ( !$result ) {
echo 'the query failed: ', mysql_error();
die;
}
(在“真实”的生产代码中,您可能不希望向任何用户显示实际的查询和错误消息)。
答案 1 :(得分:1)
检查是否存在mysql错误。如果您尚未启用错误报告,请将其启用以进行开发(error_reporting(E_ALL);
)。
尝试等待关闭mysql连接,直到完成结果集为止。
答案 2 :(得分:0)
最后尝试使用 mysql_close()函数。如果关闭mysql连接, mysql_num_rows()将无法正常工作
$num = mysql_num_rows($result);
.
.
//Any others mysql operations
.
.
mysql_close($link);
答案 3 :(得分:0)
在检索查询结果之前,您关闭了与mysql的链接。那就是问题所在。只是不要使用mysql_close(),因为PHP可以自动处理它。
答案 4 :(得分:0)
“not a resource”错误表示您的查询失败 以这种方式更改你的mysql_query调用
$result = mysql_query($query) or trigger_error(mysql_error().$query);
并查看您的查询有什么问题 总是这样做,以便与可能发生的每一个错误保持联系