Codeigniter 活动记录查询

Posted

技术标签:

【中文标题】Codeigniter 活动记录查询【英文标题】:Codeigniter Active record query 【发布时间】:2016-03-10 21:46:24 【问题描述】:

如何将此程序查询编写为 codeigniter 活动记录查询(update_batch 模式)

  UPDATE products SET current_stock = current_stock + 1 where product_id = 1

【问题讨论】:

您不需要为此使用 update_batch。当您想在一个查询中更改多条记录时,更新批处理很有用。例如,在您的查询中,如果您想更改情侣产品的库存价值,那么您可以使用 update_batch 来完成。 我要更新多条记录。 好的,我更改了查询。我认为最好在标题中添加“update_batch”,以便对其他人有用。 【参考方案1】:

您可以像这样使用 update_batch:

$products = $this->db->get('products'))->result(); 
for( $i = 0; $i < count($products); $i++)
$data[] = array(
                   'product_id' => $product[$i]->product_id,
                   'current_stock' => $product[$i]->current_stock + 1
               );

$this->db->update_batch('products', $data, 'product_id');

【讨论】:

【参考方案2】:

您可以按照Codeigniter Query Builder Class 中的说明使用以下查询:

$this->db->set('current_stock', 'current_stock+1', FALSE);
$this->db->where('product_id', 2);
$result = $this->db->update('products');

【讨论】:

以上是关于Codeigniter 活动记录查询的主要内容,如果未能解决你的问题,请参考以下文章

codeigniter 活动记录,生成,但不执行查询

CodeIgniter 活动记录在子查询中的位置

codeigniter 查询生成器和活动记录 sql 注入

Codeigniter 活动记录查询的工作方式与自定义查询不同

codeigniter 活动记录获取查询和不带 LIMIT 子句的查询

CONCAT sql 查询需要正确的格式。 Codeigniter 活动记录