php - Codeigniter 3 查询生成器自动引用错误

标签 php mysql codeigniter

我正在尝试获取下面的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/

相关文章:

php - 在 php 中执行我的查询时出错,但在 phpmyadmin 中执行时出错

mysql - 如何检查带有 max、count 等 sql 函数的查询返回 NULL?

php - ajax没有从mysql数据库返回值

php - 无法访问 Codeigniter 中的变量

php - CodeIgniter session 数据不工作

php - 如何获取客户自定义属性值

php - 从表中删除重复项并添加值

javascript - Codeigniter - 首先确认 anchor

python - Django migrate 尝试连接到非默认数据库

php - 我如何使用 codeigniter 在 php 中执行权限?