首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php中的mysql查询没有读取php变量

php中的mysql查询没有读取php变量
EN

Stack Overflow用户
提问于 2013-04-18 04:08:58
回答 1查看 172关注 0票数 0

我有以下代码,但是我的mysql查询没有返回任何值。请告诉我我做错了什么:

代码语言:javascript
复制
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,但我不知道为什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 04:13:45

您不检查mysql_query()的返回值。当mysql_query()由于任何原因失败时,它将返回false。当您将这个false值放入mysql_fetch_array()中时,它当然会报错,因为它需要一个查询结果集,而不仅仅是一个false值。

至少添加or die(mysql_error());以便查看您的查询出了什么问题

代码语言:javascript
复制
$sql = mysql_query("select count(reference) as CCOUNTS,assignee_group from issue_tracking_issues...") or die(mysql_error());

查看查询,我猜罪魁祸首可能是where子句中的havinghaving不能以这种方式用作运算符,因为它从group by集合中选择。这应该是

代码语言:javascript
复制
select ... from ... where ... group by ... having ...

如果要将$value与子字符串进行比较,请使用=likeregexp等比较运算符。

详情请参见SELECT Syntax

OT:mysql*现在已经被弃用了。考虑切换到mysqli*PDO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16069301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档