简体   繁体   English

Codeigniter更新批处理查询问题

[英]Codeigniter Update Batch Query Issue

I am trying to deduct quantity directly by column but it adding single quotes in query. 我试图按列直接扣除数量,但在查询中添加单引号。

Can any body know solution for it ? 任何人都可以知道解决方案吗?

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')

By Default codeigniter will try to protect your queries. 默认情况下,codeigniter将尝试保护您的查询。 when using a select statement you override this like so 使用select语句时,您可以像这样重写

$this->db->select("somefield",$value,FALSE);

try putting false at the end of your update_batch, it's worth a try. 尝试在您的update_batch末尾添加false,值得一试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM