9

我一直在环顾四周,但我还没有找到答案。如果您知道答案,请提供帮助。

如何更新 CI 中的多行?

在我的 MySQL 中:

我有列名:

ID, Settings Name, Settings Value ( Settings Name is Unique )

我有 ff 数据:

ID = 1, Settings Name = "Hello" , Settings Value = "True"
ID = 2, Settings Name = "World", Settings Value = "Good"

和更多 ...

我也有一个表格,Settings Value但我不知道如何在数据库上更新它。如何更新当前的True和更新的。HelloSettings NameGoodWorld

我听说过,insert_batch()但有update_batch()吗?

4

3 回答 3

22

你在使用活动记录吗?

是的,有一个更新批次:$this->db->update_batch();

$data = array(
array(
  'ID' => 1 ,
  'Settings Name' => 'Hello' ,
  'Settings Value' => 'True'
),
array(
  'ID' => '2' ,
  'Settings Name' => 'World' ,
  'Settings Value' => 'Good'
)
);    

$this->db->update_batch('mytable', $data, 'where_key'); 

从文档中:

第一个参数将包含表名,第二个是值的关联数组,第三个参数是 where 键。

于 2013-01-08T09:47:23.683 回答
7

update_batch() CodeIgniter中确实有一个可用的方法。

您可以像这样使用它作为示例:

$data = array(
    array(
        'ID' => 1,
        'Settings Name' => 'Hello',
        'Settings Value' => 'True'
    ),
    array(
        'ID' => 2,
        'Settings Name' => 'World',
        'Settings Value' => 'Good'
    )
);
$this->db->update_batch('tableName', $data, 'id'); 

所以你有一个数组数组,孩子们基本上保存数据库中每一行的数据。for的第一个参数update_batch()是数据库表的名称,第二个是$data变量,第三个是要在WHEN子句中使用的列。

于 2013-01-08T09:48:27.493 回答
1

这是执行此操作的简单 php 代码。

<?php
function basic_update($uwi='') {
$this->load->database();
$data = array(
'ID' => 1,
'Settings Name' => 'Hello',
'Settings Value' => 'True'  
);
$this->db->where('ID', '1');
$this->db->update('<table name>', $data);
$data1 = array(
    'ID' => 2,
    'Settings Name' => 'World',
    'Settings Value' => 'Good'
    );
    $this->db->where('ID', '2');
    $this->db->update('<table name>', $data1);
}

在 $this->db->where('ID', '1'); ID 是您的表字段,1 是值。在数组中第一个参数将包含表名,第二个参数是值的关联数组

于 2013-01-08T10:53:38.527 回答