在 CodeIgniter 中查询:
$this->db->select('comments.created_at, comments.section_id, comments.submittedby_id, users.username, comments.text, sections.name');
$this->db->order_by('comments.created_at', 'desc');
$this->db->where('comments.submittedby_id', 'users.user_id');
$this->db->where('comments.section_id', 'sections.id');
$query = $this->db->get(array('comments', 'users', 'sections'),10);
产生 SQL 请求:
选择
pdb_comments
。created_at
,pdb_comments
.section_id
,pdb_comments
.submittedby_id
,pdb_users
.username
,pdb_comments
.text
,pdb_sections
.name
从 (pdb_comments
,pdb_users
,pdb_sections
) 哪里pdb_comments
。submittedby_id
= 'users.user_id' 和pdb_comments
.section_id
= 'sections.id' ORDER BYpdb_comments
。created_at
描述限制 10
问题是pdb_
没有在WHERE
子句中添加数据库前缀 ( )。我可以通过附加手动插入前缀$this->db->dbprefix
,但这并不能解决主要问题。
行情:
`pdb_comments`.`submittedby_id` = 'pdb_users.user_id'
右侧的报价不准确,为我生成 0 个结果。有什么方法可以让 CodeIgniter 将 where 子句的后半部分识别为我的表的一部分;从而添加数据库前缀,并通过避免两个连接正确放置引号?还有另一种方法可以做到这一点吗?提前致谢。
--
乔恩