我正在尝试获取下面的sql格式
SELECT * FROM `ci_nest` WHERE `lft` > 9 AND `rgt` < 28 AND `rgt` = `lft` + 1 ORDER BY `lft`
但是 Codeigniter 3 在错误的位置插入了引号。
我的代码如下
$this->db->where($leftcol . ' > ' . $leftval . ' AND ' . $rightcol . ' < ' . $rightval);
$this->db->where($rightcol . " = " . $leftcol . " +1");
$this->db->order_by($leftcol);
$query = $this->db->get($this->table_name);
codeigniter 查询输出是什么
SELECT *
FROM `ci_nest`
WHERE `lft` > 9 AND `rgt` < 28
AND `rgt` = `lft` `+1`
ORDER BY `lft`
正如您在行中看到的那样,rgt
= lft
+ 1 被 codeigniter 3 查询生成器错误地格式化了。
如果能解决此问题,我们将不胜感激。
最佳答案
通过可选的第三个参数禁用反引号并自行创建。
$this->db->where($rightcol, '`'.$leftcol.'`+1', FALSE);
或者用双引号,似乎更好。
$this->db->where($rightcol, "`$leftcol`+1", FALSE);
关于php - Codeigniter 3 查询生成器自动引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31110989/