【问题标题】:mysql fetch array keep returning falsemysql fetch数组一直返回false
【发布时间】:2014-02-22 08:03:03
【问题描述】:
function get_subject_by_id($subject_id){
    global $connection; 
    $query = "SELECT * ";
    $query .= "FROM subjects ";
    $query .= "WHERE 'id' ={$subject_id} "; 
    $query .= "LIMIT 1 "; 
    $result_set = mysql_query($query, $connection); 
    confirm_query($result_set); 
    // if no rows are returned fetch_array will return false
    if(!is_null($result_set)){
    echo "got here";
    echo $result_set; 
    } 
    if($subject=mysql_fetch_array($result_set)){ // not working properly
        echo "testing fetch array";
        return $subject; 
    }else {
        return NULL; 
    }

尽管我的表中有 3 个项目,但 fetch 查询一直返回 false。一些代码显然是在测试我是否得到了结果,并且这些都可以工作,但是 fetch 数组没有执行 if 语句,因为它认为它是错误的。请帮忙几个小时的无奈属于这个问题

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    您的查询中有错误的引号类型,它们应该是反引号:

    $query .= "WHERE `id` ={$subject_id} "; 
                     ^  ^
    

    引号使id 成为字符串,而不是列名。由于字符串id 永远不会等于$subject_id,因此查询不会返回任何内容。

    【讨论】:

    • 感谢您的分享,为什么它不起作用这解决了我在客户端遇到的问题更有意义。谢谢。
    【解决方案2】:

    我认为这是因为 id 列用单引号而不是反引号括起来

    $query .= "WHERE 'id' ={$subject_id} "; 
    

    应该是

    $query .= "WHERE id ={$subject_id} "; 
    

    或者

    $query .= "WHERE `id` ={$subject_id} "; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 2012-06-18
      • 2021-12-20
      相关资源
      最近更新 更多