MySQL Active Record问题

时间:2010-08-05 19:52:44

标签: mysql activerecord codeigniter

我正在使用MySQL ActiveRecord和CodeIgniter来提交查询,但在使用“select”函数时遇到了一些障碍。例如,这个MySQL查询在phpMyAdmin中完美运行:

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();

如果我删除'select'子句,我会得到我需要的所有信息,但是想了解我做错了什么以及如何减少db上的负载。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

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

应该这样写(列名应该是单个字符串):

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

另外,请记住,您始终可以使用$this->db->last_query();输出上次运行的查询,这样您就可以看到正在执行的SQL语句。