0
私はそうのように、クエリへの参加を挿入しようとしています:CodeIgniterのエスケープ文字列
$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).')';
これはほとんどの入力でうまく動作しますが、実際には文字列をエスケープしていないようです。ある
Unclosed quotation mark after the character string 'NULL!'
とクエリの関連(速報)一部:
WHERE Group_Name IN('^*&','NULL!
がどのように適切に配列を処理しない例えば 、 $groups = array('^*&', '?!?')
場合は、データベースでエラーが発生しますか?