我一直在四处寻找,但我还没有找到答案。 请帮助,如果你知道答案。
你如何更新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
对Hello
是的Settings Name
并更新Good
了World
。
我听说insert_batch()
但有一个update_batch()
您是否使用活动记录?
是的,有一个更新批次: $这个- > 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');
从文档:
第一个参数将包含表名,第二个是值的关联数组,第三个参数是其中键。
的确存在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
子句。
下面是执行此操作的简单的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的值。 在阵列的第一参数将包含表名,第二个参数是值的关联数组