在codeigniter中如何删除字符串

时间:2018-02-22 05:13:49

标签: php mysql codeigniter query-builder

当我使用codeigniter php运行csv import时,我坚持使用这个mysql错误

enter image description here

  

此错误的原因是字符串中不需要的字符或符号。

这是我使用的CodeIgniter代码。

$this->db->where('designationName', $row[$ex_start + 3]);
$q = $this->db->get('designation');
if ($q->result()) {
$id = $q->result_array();
    $designation = $id[0]['iddesignation'];

} else {
    $data = array(
        'designationName' => $row[$ex_start + 3], //this is the variable that get string 
        'designationDate' => date('Y-m-d'),
        'status_idstatus' => '1'
    );
    $this->db->insert('designation', $data); //this is the point that error occurs
    $designation = $this->db->insert_id();

}

我如何避免使用此类字符或符号?

1 个答案:

答案 0 :(得分:3)

你可以做到

$data = array(
    'designationName' => preg_replace('/[^a-zA-Z0-9-_\.]/','', $row[$ex_start + 3])
    'designationDate' => date('Y-m-d'),
    'status_idstatus' => '1'
);
  

注意:这将允许保存纯文本+数字。不,任何特殊字符都会通过

修改01

如果你需要允许一些特殊的字符(所有键盘字符)

 preg_replace('/[^A-Za-z0-9_~`\/@!$.%^#&*\\()+-=]/','', $row[$ex_start + 3])

或者您可以使用Escaping Queries in codeigniter

  1. $this->db->escape()
  2. $this->db->escape_str()
  3. $this->db->escape_like_str()