Codeigniter:使用预准备语句删除查询

时间:2015-07-01 21:17:28

标签: php codeigniter mysqli

我不确定这是一个codeigniter事件还是具体的mysqli事件。

在我的模型类中,我试图使用2个WHERE参数删除:

$query = "DELETE FROM users WHERE user_id = ? AND company_id = ?";
$result = $this->db->query( $query, $user_id, '1' );

错误讯息:     您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在'附近使用正确的语法? AND company_id =?'在第1行

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我建议你使用'活动记录'

$this->db->where('user_id', $user_id);
$this->db->where('company_id', 1);
$this->db->delete('users'); 

https://ellislab.com/codeigniter/user-guide/database/active_record.html

答案 1 :(得分:0)

使用活动记录是可以的,但使用本机SQL需要的资源更少,我引用:

  

注意:如果您打算编写自己的查询,可以禁用活动记录   在您的数据库配置文件中,允许核心数据库库   和适配器以利用更少的资源。

来源:https://ellislab.com/codeigniter/user-guide/database/active_record.html

这是我的两行

$query_string = "DELETE FROM users WHERE user_id =".$user_id." AND company_id = 1";
$query= $this->db->query($query_string); // will return True if SUCCESS