2013-06-04 44 views
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提供的參數無效() 任何想法爲什麼這不起作用?

回答

2

這是CodeIgniter嗎?如果是一個更好的方法來檢查結果爲if($query->num_rows() > 0) { },而不是僅僅if($query) { }

而且如果笨確保您有db_debug設置爲TRUE在config/database.php中,否則你將不會看到數據庫的錯誤。

+0

是的,這是笨1.7。 2,之後我改變了db_debug爲TRUE,我得到這個: ' 數據庫出錯 錯誤號: 選擇TROUBLE_ID,ASSIGNED_DATE,CREATOR,PROBLEM_DESCRIPTION,分辨率RESOLVED_DATE FROM表1 WHERE TROUBLE_ID = ABC000001067442 ' – NinjaCoder

+0

我認爲堆棧可以提供一些屏幕截圖嗎?這個錯誤沒有任何意義... – DigitalFiz

+0

哦,沒關係。因爲你的trouble_id是一個字符串,你需要在它周圍加單引號。 – DigitalFiz

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 (" 
+0

我沒有看到任何錯誤,一切看起來很正常 – NinjaCoder

+0

不會是$ this-> DB2-> query()? – exussum

0

最後我能解決這個問題,當我的查詢條件,我用雙引號之前單引號,像這樣:

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