【发布时间】:2014-01-17 03:15:13
【问题描述】:
我指的是 codeigniter 用户指南来编写自定义 where 子句。 根据它所说的自定义where子句这样写的指南。
$where = "name='Joe' AND status='boss' OR status='active'";
$this->db->where($where);
但是当我在我的模型浏览器中使用时会抛出错误。
A Database Error Occurred
Error Number: 1054
Unknown column 'user_name='Joe'' in 'where clause'
SELECT * FROM (`Management`) WHERE `user_name='Joe'` AND password='boss' OR password='active'
Filename: /var/www/models/hr_login_model.php
Line Number: 28
这只是一个测试查询。我的实际查询是动态查询,它也给出了这个错误。
$where = "user_name='".$username."' AND password='".$password."' AND Department='".$dep_br."' OR Br_no='".$dep_br."'";
为什么它总是将列名和值都作为列名?
【问题讨论】:
-
不是解决方案,但为什么不避免这种不安全的方法(您需要手动转义值)并使用更安全、更简单的方法?
-
@DamienPirsy - 实际上我不知道这是一种不安全的方法。如果你能告诉我一个更好的方法,我会非常感谢。
标签: php mysql codeigniter