我试着阅读关于stackoverflow的其他文章,还检查了ci的活动记录文档,但是我似乎找不到我的问题的答案
我的模型具有以下逻辑:
$query = $this->db->get_where('categories', array('parent_id' => $category_id));
Run Code Online (Sandbox Code Playgroud)
根据last_query()方法生成的sql是:
选择* FROM(categories)WHERE parent_id='8'
我需要删除数字8周围的引号。我该怎么做?
我尝试使用select语句并将false作为第二个参数传递。因此,例如:
$this->db->select('*', false);
$this->db->from('categories');
$this->db->where('parent_id=',$category_id);
Run Code Online (Sandbox Code Playgroud)
但这并没有真正改变。有什么建议么?谢谢
默认情况下,CodeIgniter会尝试预测比较中的数据类型,并相应地使用适当的SQL语法。如果查询使用单引号,则可能表明$ category_id被视为字符串而不是整数。如果尝试以下操作会发生什么:
$this->db->select('*');
$this->db->from('categories');
$this->db->where('parent_id', (int) $category_id);
Run Code Online (Sandbox Code Playgroud)
另外,您可以手动构造自己的WHERE语句:
$this->db->where('parent_id = ' . (int) $category_id);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6463 次 |
| 最近记录: |