【问题标题】:MySQL Active Record problemMySQL 活动记录问题
【发布时间】:2010-08-05 19:52:44
【问题描述】:

我正在使用 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' 子句,我会得到我需要的所有信息,但想了解我做错了什么以及如何减少我的数据库上的负载。有什么想法吗?

【问题讨论】:

    标签: mysql activerecord codeigniter


    【解决方案1】:
    $this->db->select('review_id', 'firms_name');
    

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

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

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

    【讨论】:

    • 感谢您的快速回复。与往常一样,如果我更加小心,我一开始就不会遇到这些问题。非常感谢。
    • @tchaymore:很高兴我能帮上忙!
    猜你喜欢
    • 2010-12-11
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    相关资源
    最近更新 更多