codeigniter查询数据库错误

时间:2014-04-18 14:27:59

标签: php mysql codeigniter

我在我的模型中实现了一个简单的查询:

$condition = "id='$user_id' AND (role='admin' OR role='manager' OR role='staff')" ;
$this->db->select("password,ref_id,role");
$this->db->from("user");
$this->db->where($condition);
$query = $this->db->get();
return $query->row_array();

但是,发生以下错误:

Error Number: 1054

Unknown column 'id='1'' in 'where clause'

SELECT `password`, `ref_id`, `role` FROM (`user`) WHERE `id='1'` AND (role='customer' OR role='supplier')

Filename: D:\MYSERVER\wamp\www\system\database\DB_driver.php

Line Number: 330

那有什么不对?

2 个答案:

答案 0 :(得分:0)

$this->db->select("password,ref_id,role");
$this->db->from("user");
$this->db->where('id', $user_id);
$this->db->where('role', 'manager');
$this->db->where_or('role', 'staff');

如果是您的代码,那么哪些方法无法运作。如果要在where中添加sql语句,则还必须传递其他参数。请尝试以下 -

$this->db->where($condition, NULL, FALSE);

答案 1 :(得分:0)

你可以尝试这个:

$this->db->where($condition, NULL, false);

在上面的语法中,第一个用于condition,第二个参数用于value,这里是NULL,第三个用于转义字符串(默认为true) )。