$this->db->query() 啥都不返回 CodeIgniter

Posted

技术标签:

【中文标题】$this->db->query() 啥都不返回 CodeIgniter【英文标题】:$this->db->query() returning nothing CodeIgniter$this->db->query() 什么都不返回 CodeIgniter 【发布时间】:2017-04-10 04:22:57 【问题描述】:

我正在尝试使用 codeigniter 执行以下查询,但它没有给出任何/null 作为返回值,

带查询的代码:

public function getNumbersByComplainId($cid)
        $qur = $this->db->query("
            SET @sk := (SELECT app_users.skeeper_phone as sphone FROM app_users WHERE app_users. app_user_type = 'SKEEPER' LIMIT 1);
            SELECT 
            acs.id as complainId,
            IF(
                (@sk) > 0,
                @sk,
                ''
            ) as sk_phone,
            (
                SELECT 
                IF(
                    auu.institute_phone IS NULL,
                    auu.department_phone,
                    auu.institute_phone
                ) as cphone
                FROM app_users as auu
                WHERE auu.id = acs.app_customer_id
                LIMIT 1
            ) as cphone,
            (
                SELECT auuu.other_user_phone as ephone
                FROM app_users as auuu,app_admin_assign_eng as aase
                WHERE aase.app_complain_service_id = acs.id AND auuu.id = aase.engineer_id
                LIMIT 1
            ) as ephone,
            (
                SELECT auuu.fullname as ename
                FROM app_users as auuu,app_admin_assign_eng as aase
                WHERE aase.app_complain_service_id = acs.id AND auuu.id = aase.engineer_id
                LIMIT 1
            ) as ename,
            (
                SELECT auuu.other_user_phone as ephone
                FROM app_users as auuu,app_admin_assign_eng as aase
                WHERE aase.app_complain_service_id = acs.id AND auuu.id = aase.admin_id
                LIMIT 1
            ) as aphone
            FROM app_complain_services as acs,app_users as au
            WHERE 
            acs.id = '".$cid."'
            GROUP BY acs.id
            ");

        print_r($qur);
        //print_r($this->db->last_query());

        if($qur && $qur->num_rows() > 0)
            return $qur->result();
        else
            return null;
        
    

函数返回 null ,而 $qur 变量可能是 null

个人尝试:

使用print_r($this->db->last_query()) 检查,返回我在phpmyadmin 上运行的有效sql 查询工作正常。

【问题讨论】:

??????????任何人 试试 if($qur && ($qur->num_rows() > 0)) "$qur 变量可能是null" 是不是null 【参考方案1】:

试试这些条件吧

 if ($quer->num_rows() > 0) 
        foreach ($quer->result() as $row) 
            $data[] = $row;
        
        return $data;
    
    return false;

这可能对你有帮助

【讨论】:

以上是关于$this->db->query() 啥都不返回 CodeIgniter的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter 中 $query>num_rows() 和 $this->db->count_all_results() 之间的区别 & 推荐哪一个

交易过程中的Codeigniter异常,会发生什么?

CI codeigniter 查询 db query 返回 二维数组 返回 第一条记录

封装JSON

CI 快速上手

尝试使用 CodeIgniter '调用'存储过程