PHP mysql_fetch_assoc error-参数应为布尔错误查询
可能重复:PHP mysql_fetch_assoc error-参数应为布尔错误查询,php,mysql,Php,Mysql,可能重复: 我正在为我的高级班做一个项目,我们的首席程序员刚刚不及格,现在我是唯一的程序员。他在使用PHP,而我几乎没有编程经验。程序不断回退此错误 mysql_fetch_assoc()希望参数1是资源,布尔值在中给出(指向第33行的pastebin文件) 如果你们能帮忙,我将非常感激。。。我似乎无法理解这一点 谢谢 内森 更新:我运行了echo mysql_错误标志,它在第58行出现了一个错误 if($rows == ''){ 此错误几乎总是指向失败的SQL查询,这通常是语法问题。我现
我正在为我的高级班做一个项目,我们的首席程序员刚刚不及格,现在我是唯一的程序员。他在使用PHP,而我几乎没有编程经验。程序不断回退此错误 mysql_fetch_assoc()希望参数1是资源,布尔值在中给出(指向第33行的pastebin文件) 如果你们能帮忙,我将非常感激。。。我似乎无法理解这一点 谢谢 内森 更新:我运行了echo mysql_错误标志,它在第58行出现了一个错误
if($rows == ''){
此错误几乎总是指向失败的SQL查询,这通常是语法问题。我现在正在研究您的代码,但我建议您仔细检查查询语法
mysql\u query
在完成成功的查询时返回资源
,如果查询失败则返回false
。您的查询失败,因此,您将false传递给mysql\u fetch\u assoc()
,它需要资源,因此出现错误
你可以(应该)这样做
$result = mysql_query($query);
if (!$result)
echo mysql_error();
else
//do your stuff here
如果您不能清楚地看到查询中的错误,请使用上面的代码段mysql\u error()
将报告错误,这样您就知道哪里出了问题。或者,在IDE中运行查询,例如调试查询。这意味着您的查询没有返回任何结果(问题出在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中的某些内容是错误的,但我在查看时没有发现任何错误。您对sql查询有某种问题。您需要检查$result。如果它是假的,你需要打印mysql_error(),看看哪里出了问题。我真的很感激!我现在也在看。谢谢,我将尝试Jon发布的内容,如果没有任何东西仍然有效,我将使用此方法查看它是否有助于缩小范围。我已经取得了一些进展。。。在把错误代码放在这里之后,他们告诉我。注意:未定义变量:第60行C:\xampp\htdocs\report.php中的行注意:未定义变量:第65Ok行C:\xampp\htdocs\report.php中的行,这意味着您的SQL部件工作正常。现在报告的错误是一个PHP错误。在粘贴箱的第46行中,创建并使用$rows。然后,再次在第56行引用它,但它不再在范围内。添加$rows=array()代码>在第32行和第33行之间。这是非常有用的,我真的很感激,我现在就去尝试这些东西!
// 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