Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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 Codeigniter更新批查询问题_Php_Mysql_Codeigniter - Fatal编程技术网

Php Codeigniter更新批查询问题

Php Codeigniter更新批查询问题,php,mysql,codeigniter,Php,Mysql,Codeigniter,我试图直接按列扣除数量,但它在查询中添加了单引号 有谁知道解决办法吗 Array ( [0] => Array ( [qnty_hold] => qnty_hold + 1 [qnty] => qnty - 1 [sku] => LN_STEEL_N3_BLK_M ) ) //Query Set $this->db->_protect_ident

我试图直接按列扣除数量,但它在查询中添加了单引号

有谁知道解决办法吗

Array
(
    [0] => Array
        (
            [qnty_hold] => qnty_hold + 1
            [qnty] => qnty - 1
            [sku] => LN_STEEL_N3_BLK_M
        )

)

//Query Set
$this->db->_protect_identifiers=false;
$this->db->update_batch('table', $batchUpdateProductQtyData, 'sku');

//Query output
UPDATE table SET qnty_hold = CASE WHEN sku = 'LN_STEEL_N3_BLK_M' THEN 'qnty_hold + 1' ELSE qnty_hold END, qnty = CASE WHEN sku = 'LN_STEEL_N3_BLK_M' THEN 'qnty - 1' ELSE qnty END WHERE sku IN ('LN_STEEL_N3_BLK_M')

默认情况下,codeigniter将尝试保护您的查询。当使用select语句时,可以像这样覆盖它

$this->db->select("somefield",$value,FALSE);
尝试在更新批处理的末尾添加false,这值得一试