0

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

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 数据库,但查询一直为空,以防万一我echo 'id:'.$idt.;检查了 ID 是否被传递。是的。我也收到此消息: 致命错误:在非对象上调用成员函数 result_array()

在我的视图页面上,我有以下代码:

foreach($results as $row){ }

我现在收到此消息: 遇到 PHP 错误 严重性:警告消息:为 foreach() 提供的参数无效 知道为什么这不起作用吗?

4

3 回答 3

2

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

此外,如果它的 CodeIgniter 确保您已在 config/database.php 中db_debug设置为TRUE,否则您将看不到数据库错误。

于 2013-06-04T17:48:26.917 回答
0

由于某种原因,查询失败

$this->db->_error_message();

应该告诉你为什么

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

应该为您提供有关查询的更多信息

更新:

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

        $query = $DB2->query ("

将 ^^ 更改为 vv

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

        $query = $this->DB2->query ("
于 2013-06-04T17:52:30.067 回答
0

最后,当在我的查询条件中我在双引号之前使用单引号时,我终于能够解决这个问题,如下所示:

Select TROUBLE_ID, ASSIGNED_DATE, CREATOR, PROBLEM_DESCRIPTION, RESOLUTION, RESOLVED_DATE 
FROM TABLE1
WHERE TROUBLE_ID = '" . $idt . "'
于 2013-06-05T13:08:23.533 回答