为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
MMMHUHU 2022-12-30 17:08:24
有人可以解释这些代码之间的区别吗?因为查询生成器没有给出正确的结果,但是另一个查询给出了正确的结果。我看不到有什么区别?$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"; 
查看完整描述

2 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

要使用 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();


查看完整回答
反对 回复 2022-12-30
?
慕容708150

TA贡献1831条经验 获得超4个赞

试试这个:


$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');


查看完整回答
反对 回复 2022-12-30
  • 2 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信