2010-08-05 109 views
0

我使用CodeIgniter的MySQL ActiveRecord提交查詢,但在使用「select」函數時遇到了一些問題。例如,這個MySQL查詢在phpMyAdmin中完美工作:MySQL Active Record問題

SELECT review_id, firms_name 
FROM reviews AS r 
JOIN firms AS f ON f.firms_id = r.review_target_id 
WHERE r.review_id =3 
ORDER BY r.review_timestamp DESC 
LIMIT 0 , 30 

它給了我兩列,正是我所需要的。

然而,這只是給了我一個欄,「REVIEW_ID」:

$this->db->select('review_id', 'firms_name'); 
$this->db->from('reviews as r'); 
$this->db->join('firms as f', 'f.firms_id = r.review_target_id'); 
$this->db->where('r.review_id', $id); 
$this->db->order_by('r.review_timestamp', 'desc'); 
$query = $this->db->get(); 

如果我刪除了「選擇」條款,我得到我所需要的所有信息,但想了解我是什麼做錯了,我可以如何減少我的數據庫的負載。有什麼想法嗎?

回答

3
$this->db->select('review_id', 'firms_name'); 

應該這樣寫(列名應該是一個字符串):

$this->db->select('review_id, firms_name'); 

此外,請記住,你可以隨時使用$this->db->last_query();以輸出上次運行的查詢,讓你可以看到正在執行的確切SQL語句。

+0

感謝您的快速響應。一如往常,如果我更加小心,我不會有這些問題開始。非常感謝。 – tchaymore 2010-08-05 23:54:57

+0

@tchaymore:很高興能幫到你! – 2010-08-06 13:50:42