返回空查询的编码器函数


Codeigniter function returning an empty query

我的模型上有这个函数,它接收一个参数,因此我可以在视图页面上预加载一些信息,但不知何故返回空:

function addTicket($idt)
    {
        //Db Connection
        $DB2 = $this-> load-> database('DB2', TRUE);
        if (!empty($idt)){
            $query = $DB2->query ("
                    Select TROUBLE_ID, ASSIGNED_DATE, CREATOR, PROBLEM_DESCRIPTION, RESOLUTION, RESOLVED_DATE 
                    FROM TABLE1
                    WHERE TROUBLE_ID = ".$idt." 
                    "); 
        if($query){
            return $query->result_array();
        }
        else 
            {
        echo 'No Queries to display';
            }
        }
        else {echo 'No results to display';}
    }

我有一个有大量条目的Oracle DB,但查询一直返回空,以防万一我做了一个echo 'id:'.$idt.;来检查ID是否正在传递。是的,它是。我也得到这个消息:

在非对象上调用成员函数result_array()

在我的视图页面,我有这个代码:

foreach($results as $row){ }

我现在收到这个消息: PHP错误严重性:警告消息:为foreach()提供了无效参数知道为什么不行吗?

这是CodeIgniter吗?如果是这样,更好的检查结果的方法是if($query->num_rows() > 0) { }而不仅仅是if($query) { }

如果是CodeIgniter,请确保在config/database.php中将db_debug设置为TRUE,否则您将无法看到数据库错误。

由于某种原因,查询失败

$this->db->_error_message();

应该告诉你为什么

$this->output->enable_profiler(TRUE); 

应该给你更多关于查询的信息

更新:

    $DB2 = $this-> load-> database('DB2', TRUE);
    if (!empty($idt)){
        $query = $DB2->query ("

change ^^ to vv

    $DB2 = $this-> load-> database('DB2', TRUE);
    if (!empty($idt)){
        $query = $this->DB2->query ("

最后,当我在查询条件中使用双引号之前使用单引号时,我能够解决这个问题,像这样:

Select TROUBLE_ID, ASSIGNED_DATE, CREATOR, PROBLEM_DESCRIPTION, RESOLUTION, RESOLVED_DATE 
FROM TABLE1
WHERE TROUBLE_ID = '" . $idt . "'