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、DBで更新する方法がわかりません。のを更新する方法とのTrueHello更新Settings NameするGood方法World

聞いたinsert_batch()けどありupdate_batch()ますか?

4

3 に答える 3

22

Active Recordを使用していますか?

はい、更新バッチがあります:$ 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'); 

ドキュメントから:

最初のパラメーターにはテーブル名が含まれ、2番目のパラメーターは値の連想配列であり、3番目のパラメーターは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'); 

つまり、配列の配列があり、子は基本的にデータベースの各行のデータを保持します。の最初のパラメータupdate_batch()はデータベーステーブルの名前、2番目は変数、3番目は句$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は値です。配列の最初のパラメーターにはテーブル名が含まれ、2番目のパラメーターは値の連想配列です

于 2013-01-08T10:53:38.527 に答える