PHP mysql_fetch_assoc错误 - 参数期望是布尔错误查询

时间:2012-03-07 04:48:11

标签: php mysql

  

可能重复:
  Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in

我正在为我的高年级学生开设一个项目,我们的首席程序员刚刚开始,现在我是唯一的程序员。他使用的是PHP,我几乎没有编程经验。该程序不断踢回这个错误......

mysql_fetch_assoc()期望参数1为资源,给定布尔值(指向第33行的pastebin文件)

http://pastebin.com/nfv9P2h5

如果你们能提供帮助,我会非常感激......我似乎无法解决这个问题。

谢谢,

更新:我运行了echo mysql_error标志,它在第58行出现错误

if($rows == ''){

2 个答案:

答案 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中的某些内容是错误的,但是当我查看它时,我没有看到任何错误。