php - 使用 join codeigniter 事件记录更新表?

标签 php mysql codeigniter

这是我的代码片段,使用事件记录来更新 item_stock 值。 我需要从项目表中获取 item.SKU 作为查询的选择器。

$this->db->join('item','item.item_id = items.item_id')
          ->join('items','items.stock_id = item_stock.stock_id')
          ->set('item_stock.stock_quantity','item_stock.stock_quantity + $new_qty',FALSE)
          ->where('item_stock.colour',$color)
          ->where('item_stock.size',$size)
          ->where('item.SKU',$SKU)
          ->update('item_stock');
$query = $this->db->update('item_stock');

由于某种原因,它丢失了它的JOIN堆栈。

Error Number: 1054

Unknown column 'item.SKU' in 'where clause'

UPDATE `item_stock` SET `item_stock`.`stock_quantity` = item_stock.stock_quantity + $new_qty WHERE `item_stock`.`colour` = 'Kuning' AND `item_stock`.`size` = 'XL' AND `item`.`SKU` = 'Wooser-01'

Filename: E:\xampp\htdocs\nekogear\system\database\DB_driver.php

Line Number: 330

有什么建议可以解决这个问题吗?谢谢之前。

<小时/>

*ps = 我尝试过 $this->db->query("query code here") 并且它工作正常,但我想使用用于一致性的事件记录样式。

最佳答案

你可以说我很蠢,但是嘿,这很管用! 我的“解决方案”是将 JOIN 包含在 $this->db->update()

$this->db->set('item_stock.stock_quantity','item_stock.stock_quantity + $new_qty',FALSE)
         ->where('item_stock.colour',$color)
         ->where('item_stock.size',$size)
         ->where('item.SKU',$SKU);
$query = $this->db->update('item_stock JOIN items ON items.stock_id = item_stock.stock_id JOIN item ON item.item_id = items.item_id');

它等于以下查询

UPDATE `item_stock`
JOIN items ON items.stock_id = item_stock.stock_id
JOIN item ON item.item_id = items.item_id
SET `item_stock`.`stock_quantity` = item_stock.stock_quantity + $new_qty
WHERE `item_stock`.`colour` = 'Kuning'
AND `item_stock`.`size` = 'XL'
AND `item`.`SKU` = 'Wooser-01'

希望对您也有帮助!

关于php - 使用 join codeigniter 事件记录更新表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21652231/

相关文章:

php - 如果 session 变量包含值,则显示 Bootstrap 横幅

mysql - 在 codeigniter 中实现搜索

php - 正则表达式与php

php - PHP 函数没有正确返回值?

php - 表单输入未显示在 mysql 中

php - 读取多对多关系中的值

php - 确定 SQL UPDATE 是否更改了列的值

php - CodeIgniter 中的方法 Post 和 Get

php - 当我安装 phpfox 网站时,它向我显示一个恼人的语言看起来编码错误

php - 如何在品牌 exe/dmg 安装程序中打包 chrome 浏览器?