Codeigniter 查询生成器无法正常工作

有人可以解释这些代码之间的区别吗?因为查询生成器没有给出正确的结果,但是另一个查询给出了正确的结果。


我看不到有什么区别?


$this->db->select('m.*,c.COUNTRY_NAME');

$this->db->from('members m');

$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');

$this->db->where('c.LANG', 'EN');

给出正确结果的查询


SELECT m.*,c.COUNTRY_NAME FROM members m LEFT JOIN country c ON c.COUNTRY_ALPHA2_CODE = m.location WHERE c.LANG = "EN"; 


MMMHUHU
浏览 81回答 2
2回答

慕桂英546537

要使用 CI 生成完整的查询字符串,您需要添加以下行:$query=$db->get();你的方法。完整的代码如下所示:$this->db->select('m.*,c.COUNTRY_NAME');$this->db->from('members m');$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');$this->db->where('c.LANG', 'EN');$query=$db->get();在此行之后,您可以使用以下命令检查 SQL 字符串输出:echo $this->db->query();从这里您可以继续为您的视图生成查询结果回复评论:'$this->db->where('c.LANG', 'EN');'不起作用。此行始终返回数据库中的第一语言您需要将语言查询放入连接中:$this->db->select('m.*,c.COUNTRY_NAME');$this->db->from('members m');$this->db->join('country c','(c.COUNTRY_ALPHA2_CODE = m.location AND c.LANG=\'EN\')', 'left');$query=$db->get();

慕容708150

试试这个:$this->db->select('m.*');$this->db->select('c.COUNTRY_NAME');$this->db->from('members m');$this->db->join('country c','c.COUNTRY_ALPHA2_CODE = m.location', 'left');$this->db->where('c.LANG', 'EN');
打开App,查看更多内容
随时随地看视频慕课网APP