Php 如何在发送到mysql数据库时从特殊字符中转义所有数组元素

Php 如何在发送到mysql数据库时从特殊字符中转义所有数组元素,php,arrays,codeigniter,sql-injection,Php,Arrays,Codeigniter,Sql Injection,我正在发送一个数组,该数组已从视图传递到控制器(ajax json)。 在控制器中,我收集阵列中的所有数据,如下所示: $to_update = array( 'Name' =>$Name, 'qualification' =>$qualification, 'percentage' =>$percentage, ); 我将把它发送给模型,插入数据库,调用如下 $result = $this->MODEL_NAME->FU

我正在发送一个数组,该数组已从视图传递到控制器(ajax json)。 在控制器中,我收集阵列中的所有数据,如下所示:

$to_update = array(
    'Name' =>$Name,
     'qualification' =>$qualification,
     'percentage' =>$percentage,
      );
我将把它发送给模型,插入数据库,调用如下

$result  = $this->MODEL_NAME->FUNC_NAME($to_update);
在模型中,它们被嵌入到

$this->db->insert('table_name', $to_update);
现在,我必须确保SQL注入将得到正确处理,并且当用户输入任何特殊字符时,不会发生任何伤害。 因此,我必须为阵列提供转义功能。我有非常巨大的数组,上面有数百个元素

保存时会保存特殊字符,但在提取时会出现问题,数据会丢失。那么我应该在哪里逃跑,如何逃跑
有什么建议吗

ActiveRecord的所有查询构建方法
如where、group、order、insert、update等,只要您不传递原始SQL字符串,它们都是安全的

CodeIgniter将识别变量的数据类型,并相应地包装它。也就是说,如果它是一个字符串,它将在SQL中的转义值周围加上“and”,这就是您需要确保
用户不能注入任何恶意内容的地方。


当使用活动记录而不是运行直接SQL查询时,CodeIgniter正在剥离引号和易受攻击的脚本。。因此,不用担心使用活动记录

只要不传递原始SQL字符串,所有活动记录的查询构建方法都是安全的,如where、group、order、insert、update等

CodeIgniter将识别变量的数据类型,并相应地包装它。也就是说,如果它是一个字符串,它将在SQL中的转义值周围加上“and”,这就是您需要确保
用户不能注入任何恶意内容的地方。


当使用活动记录而不是运行直接SQL查询时,CodeIgniter正在剥离引号和易受攻击的脚本。。因此,不用担心使用活动记录

只要不传递原始SQL字符串,所有活动记录的查询构建方法都是安全的,如where、group、order、insert、update等

CodeIgniter将识别变量的数据类型,并相应地包装它。也就是说,如果它是一个字符串,它将在SQL中的转义值周围加上“and”,这就是您需要确保
用户不能注入任何恶意内容的地方。


当使用活动记录而不是运行直接SQL查询时,CodeIgniter正在剥离引号和易受攻击的脚本。。因此,不用担心使用活动记录

只要不传递原始SQL字符串,所有活动记录的查询构建方法都是安全的,如where、group、order、insert、update等

CodeIgniter将识别变量的数据类型,并相应地包装它。也就是说,如果它是一个字符串,它将在SQL中的转义值周围加上“and”,这就是您需要确保
用户不能注入任何恶意内容的地方。


当使用活动记录而不是运行直接SQL查询时,CodeIgniter正在剥离引号和易受攻击的脚本。。所以不用担心使用活动记录

Ok,但除此之外,我还想从用户那里获取尽可能多的数据。例如,如果用户在那里输入“HELLL”这样的“0”,我必须能够保存“HELLO THERE”,并且应该提取相同的内容。但是现在整个内容都保存了,并且在选择时只提取“HELL”。是否有任何方法。在像这样将它们插入查询之前:
$var=$this->db->escape($var)
好的,但除此之外,我还想从用户那里获取尽可能多的数据。例如,如果用户在那里输入“HELLL”之类的“0”,我必须能够保存“HELLO THERE”,并且应该获取相同的数据。但现在整个东西都被保存了,在选择时只会抓取“地狱”。有没有办法。在像这样将它们插入查询之前:
$var=$this->db->escape($var)好,但除此之外,我还想从用户那里获取尽可能多的数据。例如,如果用户在那里输入“HELLL”这样的“0”,我必须能够保存“HELLO THERE”,并且应该提取相同的内容。但是现在整个内容都保存了,并且在选择时只提取“HELL”。是否有任何方法。在像这样将它们插入查询之前:
$var=$this->db->escape($var)
好的,但除此之外,我还想从用户那里获取尽可能多的数据。例如,如果用户在那里输入“HELLL”之类的“0”,我必须能够保存“HELLO THERE”,并且应该获取相同的数据。但现在整个东西都被保存了,在选择时只会抓取“地狱”。有没有办法。在像这样将它们插入查询之前:
$var=$this->db->escape($var)