【发布时间】:2013-09-02 22:44:56
【问题描述】:
我有一个多维数组 att,我想通过 UPDATE 语句将其插入 MySQL。但我只希望在数组中的 entry_id 与 DB 中的 entry_id 匹配时更新它。如果它与数组中的值匹配,则必须对其进行更新。
这是我的名为 values
的多维数组Array (
[0] => Array ( [entry_id] => 41149 [o_number] => 000001 [test1] => 000001 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4 )
[1] => Array ( [entry_id] => 41142 [o_number] => 000202[test1] => 000202 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4 )
[2] => Array ( [entry_id] => 41103 [o_number] => 000003 [test1] => 000003 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4 )
[3] => Array ( [entry_id] => 41101 [o_number] => 000044 [test1] => 000044 [test2] => 1234 [lev] => Ja [fak] => Manuel/brev [beta] => 10 [test] => 2 )
[4] => Array ( [entry_id] => 41100 [o_number] => 000542 [test1] => 000542 [test2] => 1234 [lev] => Ja [fak] => Mail [beta] => 30 [test] => 4 ))
这是我的数据库字段,我要更新。
o_number test1 test2 lev fak beta
这就是我的数据库现在的样子
title entry_id o_number test1 test2 lev fak beta
Rest Soya 41149
Cafe Bella 41142
Danglette 41103
这是我的代码,关于如何遍历维数组然后更新 mySQL。但我只想更新,如果 entry_id 匹配。
所以问题是,当我有一个多维数组时如何更新表?我以这种方式尝试过,但还没有决定测试它,因为我不想插入任何错误的东西。有没有更好更有效的方法来做到这一点?
foreach ($values as $key)
{
$sql_update = "UPDATE exp_channel_data set
o_number =$key['o_number'],
lev ='$key['lev']',
fak =$key['fak'],
beta =$key['beta'],
test1 =$key['test1'],
test2 =$key['test2']
where entry_id = '$entry_id"
$this->EE->db->query($sql_update);
}
这是我在数据库中想要的输出
title entry_id o_number test1 test2 lev fak beta
Rest Soya 41149 000001 000001 1234 Ja Mail 30
Cafe Bella 41142 000202 000202 1234 Ja Mail 30
Danglette 41103 000003 000003 1234 Ja Mail 30
【问题讨论】:
-
这是正确的做法,除非你有很多引用问题。
标签: php mysql multidimensional-array sql-update