在CodeIgniter Where子句中添加子字符串

时间:2018-01-03 14:33:24

标签: php mysql codeigniter

是否可以在活动查询中添加子字符串?

我有这个例子,当我在纯sql中写出它时。但是,当我在CI中的活动查询中写入时,结果不会显示。我想知道是否有人可以帮助验证这是否正确。

        $this->db->distinct();
        $this->db->select('user_table.id','user_table.first_name','user_table.last_name','user_table.email','user_table.created_on');
        $this->db->from($this->user_table);
        $this->db->join($this->account_items_table,'user_accounts.id = account_items.user_id','LEFT');
        $this->db->where('SUBSTRING(account_items.key,1,2)',$input);

2 个答案:

答案 0 :(得分:0)

可能CI正在你的表达式中添加反引号,将第三个参数传递为where()

中的false
$this->db->where('SUBSTRING(account_items.key,1,2)',$input,false);

答案 1 :(得分:0)

这对我来说很好用:

$this->db->where('SUBSTRING(title, 1, 1)=','H');
$query = $this->db->get('news');
print $this->db->last_query();

我能看到的唯一区别是我已经包含了=运算符。

正如您所看到的那样,它会返回名为" Hello"的文章: https://mi-linux.wlv.ac.uk/~in9352/codeigniter3/

并且SQL语句是:SELECT * FROM news WHERE SUBSTRING(title,1,1)=' H'

根据建议您应该使用

print $this->db->last_query();

要查看你的SQL是什么......在我的情况下允许发现missing =运算符...调试总是有用的!