Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 代码点火器逃逸串_Php_Codeigniter_Activerecord - Fatal编程技术网

Php 代码点火器逃逸串

Php 代码点火器逃逸串,php,codeigniter,activerecord,Php,Codeigniter,Activerecord,我正在尝试向查询中插入联接,如下所示: $this->db->join( "(SELECT DISTINCT(fo.Order_ID) FROM order fo INNER JOIN order_item foi ON fo.Order_ID = foi.Order_ID INNER JOIN product_group fpg ON fpg.Product_ID = foi.Product_ID INNER JOIN group fg ON fg.Group_ID = fpg.G

我正在尝试向查询中插入联接,如下所示:

$this->db->join(
"(SELECT DISTINCT(fo.Order_ID)
FROM order fo
INNER JOIN order_item foi ON fo.Order_ID = foi.Order_ID
INNER JOIN product_group fpg ON fpg.Product_ID = foi.Product_ID
INNER JOIN group fg ON fg.Group_ID = fpg.Group_ID
WHERE Group_Name IN". $groups.")G",
'G.Order_ID = o.Order_ID',
'inner');
$groups
是一个数组,因为我不能使用
$this->db->where_in()
,所以我用以下方法来转义它:

$groups = array_map(function($group){return $this->db->escape($group);}, $groups);
$groups = '(' . implode(',', $groups).')';
这对大多数输入都很好,但似乎并没有真正转义字符串。 例如,如果
$groups=array('^*&','?!?')
,数据库抛出错误:

Unclosed quotation mark after the character string 'NULL!'
查询的相关(中断)部分是:

WHERE Group_Name IN('^*&','NULL!
如何正确处理阵列?

如果

其中,“$groups.”G中的组名称“

$groups是一个数组

$groups=数组(“^*&”,“?!?”)

然后

其中应生成以下部分字符串:

WHERE Group_Name IN ('^*&','?!?')G",
WHERE Group_Name IN ('^*&','?!?')G",