在codeigniter中,当我使用函数$ this-> db-> escape()插入数据时,它在数据库中添加单引号,任何人都可以帮忙解释为什么我会遇到这个问题?
这是我的代码
$data = array('company_id'=>$this->db->escape($companyID),'payor_type'=>$this->db->escape($payor_type),
'payer_type'=>$this->db->escape($payer_type),'insurance'=>$this->db->escape($insurance),
'created_date'=>date("Y-m-d H:i:s"));
$this->db->insert('tb_Payer',$data);
答案 0 :(得分:6)
当您使用query builder class构建查询时,系统会自动转义这些值,因此您不必使用函数$this->db->escape
。在您的情况下,每个值都由转义函数转义,系统在执行插入函数时为每个值再次执行此操作。
现在,如果您想使用函数$this-db->query
运行自定义查询,escape这样的数据就是一个很好的做法,如下所示:
$sql = "INSERT INTO table (column) VALUES(".$this->db->escape($value).")";
$this->db->query($sql);