【问题标题】:update table using join codeigniter active record?使用加入codeigniter活动记录更新表?
【发布时间】:2014-02-08 21:51:42
【问题描述】:

这是我使用活动记录更新 item_stock 值的代码的 sn-p。 我需要从 item 表中获取 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") 并且效果很好,但我想使用用于一致性的活动记录样式。

【问题讨论】:

    标签: php mysql codeigniter


    【解决方案1】:

    称我为愚蠢,但嘿,它的工作原理! 我的“解决方案”是在 $this->db->update()

    中包含 JOIN
    $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'
    

    希望对你也有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      相关资源
      最近更新 更多