更新笨多行(Update multiple Rows in Codeigniter)

2019-07-17 23:56发布

我一直在四处寻找,但我还没有找到答案。 请帮助,如果你知道答案。

你如何更新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 ,但我不知道如何更新它的数据库。 如何更新TrueHello是的Settings Name并更新GoodWorld

我听说insert_batch()但有一个update_batch()

Answer 1:

您是否使用活动记录?

是的,有一个更新批次: $这个- > 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'); 

从文档:

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



Answer 2:

的确存在update_batch() CI中已经可用的方法 。

你可以使用它你的榜样,像这样:

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

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



Answer 3:

下面是执行此操作的简单的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);
}

在这 - $> DB->其中( 'ID', '1'); ID是你的表的字段和1的值。 在阵列的第一参数将包含表名,第二个参数是值的关联数组



文章来源: Update multiple Rows in Codeigniter