可能重复:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
我正在为我的高年级学生开设一个项目,我们的首席程序员刚刚开始,现在我是唯一的程序员。他使用的是PHP,我几乎没有编程经验。该程序不断踢回这个错误......
mysql_fetch_assoc()期望参数1为资源,给定布尔值(指向第33行的pastebin文件)
如果你们能提供帮助,我会非常感激......我似乎无法解决这个问题。
谢谢,
森
更新:我运行了echo mysql_error标志,它在第58行出现错误
if($rows == ''){
答案 0 :(得分:0)
mysql_fetch_assoc() expects parameter 1 to be resource, boolean given
此错误几乎总是指向SQL查询失败,这通常是语法问题。我现在正在研究你的代码,但我建议你仔细检查你的查询语法。
mysql_query
在完成成功查询后返回resource
,如果查询失败则返回false
。您的查询失败,因此,您将错误传递给期望mysql_fetch_assoc()
的{{1}},因此错误。
你可以(应该?)这样做吗
resource
如果您无法查看查询中的错误,请使用上面的代码段。 $result = mysql_query($query);
if (!$result)
echo mysql_error();
else
//do your stuff here
会报告错误,因此您就知道自己哪里出错了。或者,在诸如MySQL Workbench的IDE中运行查询以调试查询。
答案 1 :(得分:0)
这意味着您的查询没有返回结果(问题出在SQL中,而不是PHP中)。这可能是语法错误,但我没有立即看到。
尝试用此替换$query
:
SELECT *
FROM counterdata
这保证会返回一些东西(只要你的数据库中有一些数据),并且如果没有其他错误则应该有效。
然后,尝试再次向查询中添加部分SQL,如下所示:
// Next Step:
SELECT SensorName, SUM(CountA) AS Traffic, StartDate, EndDate
FROM counterdata
// Then Try:
SELECT SensorName, SUM(CountA) AS Traffic, StartDate, EndDate
FROM counterdata
WHERE StartDate >= '{$yesterdayTimestamp}'
// And Lastly:
SELECT SensorName, SUM(CountA) AS Traffic, StartDate, EndDate
FROM counterdata
WHERE StartDate >= '{$yesterdayTimestamp}'
GROUP BY StartDate, SensorName
这将告诉您SQL中的错误位置 - 如果存在 - 。否则,它应该工作。
如果这些都不起作用,那么PHP中的某些内容是错误的,但是当我查看它时,我没有看到任何错误。