我有以下代码,但是我的mysql查询没有返回任何值。请告诉我我做错了什么:
foreach($stagearray as $catgry){
echo $catgry;//this is returning the values
$sql = mysql_query("
select
count(reference) as CCOUNTS,
assignee_group
from
issue_tracking_issues i,
issue_tracking_issues_issue_tracking_projects j
where
status NOT LIKE 'Closed%'
AND i.id=j.issue_tracking_issue_id
AND j.issue_tracking_project_id=1
and $value
having
SUBSTR(date_raised,3,3)
group by
assignee_group
");
while($rows = mysql_fetch_array($sql)){这给了我以下警告:
警告: mysql_fetch_array():提供的参数不是有效的MySQL结果资源
我猜我的sql查询不能解析$catgry,但我不知道为什么。
发布于 2013-04-18 04:13:45
您不检查mysql_query()的返回值。当mysql_query()由于任何原因失败时,它将返回false。当您将这个false值放入mysql_fetch_array()中时,它当然会报错,因为它需要一个查询结果集,而不仅仅是一个false值。
至少添加or die(mysql_error());以便查看您的查询出了什么问题
$sql = mysql_query("select count(reference) as CCOUNTS,assignee_group from issue_tracking_issues...") or die(mysql_error());查看查询,我猜罪魁祸首可能是where子句中的having。having不能以这种方式用作运算符,因为它从group by集合中选择。这应该是
select ... from ... where ... group by ... having ...如果要将$value与子字符串进行比较,请使用=、like或regexp等比较运算符。
详情请参见SELECT Syntax。
OT:mysql*现在已经被弃用了。考虑切换到mysqli*或PDO。
https://stackoverflow.com/questions/16069301
复制相似问题