MySQL Multiple UPDATE:许多查询等效而没有foreach()

时间:2013-08-02 08:13:49

标签: php mysql

我有问题。我有设置表(ID,参数,名称),有很多站点设置。当我尝试更新该设置时,我这样做(个人对每个参数):

...$sql = "UPDATE settings SET `value` = ? WHERE param = ?";
$DB->query($sql, $_POST['SITE_NAME'], 'SITE_NAME');
$sql = "UPDATE settings SET `value` = ? WHERE param = ?";
$DB->query($sql, $_POST['SITE_DESC'], 'SITE_DESC');...

等。如何在没有多个查询的情况下更新表格中的数据?

2 个答案:

答案 0 :(得分:1)

UPDATE仅支持一个WHERE条件,因此不适合您想要的内容。但是,如果您有行的ID(我假设ID是主键),您可以这样做:

INSERT INTO settings (ID, value) VALUES (id1, value1) (id2, value2) ...
ON DUPLICATE KEY UPDATE value = VALUES(value)

答案 1 :(得分:0)

查看UPDATE语句的语法

通常你可以写

UPDATE <table> SET <col1> = <val1>, <col2> = <val2> ... WHERE ...

Similar post here