Php MySQL多次更新:许多查询在没有foreach()的情况下是等效的

Php MySQL多次更新:许多查询在没有foreach()的情况下是等效的,php,mysql,Php,Mysql,我有个问题。我有设置表(ID,param,name),其中有很多站点设置。当我尝试更新该设置时,我会这样做(针对每个参数): 等等。如何在不进行多次查询的情况下更新表中的数据?请查看update语句的语法 一般来说,你可以写作 UPDATE <table> SET <col1> = <val1>, <col2> = <val2> ... WHERE ... 更新集=,=。。。哪里 UPDATE只支持一个WHERE条件,因此它不适合您

我有个问题。我有设置表(ID,param,name),其中有很多站点设置。当我尝试更新该设置时,我会这样做(针对每个参数):


等等。如何在不进行多次查询的情况下更新表中的数据?

请查看update语句的语法

一般来说,你可以写作

UPDATE <table> SET <col1> = <val1>, <col2> = <val2> ... WHERE ...
更新集=,=。。。哪里

UPDATE
只支持一个
WHERE
条件,因此它不适合您想要的条件。但是,如果您有行的ID(我假设ID是主键),则可以执行以下操作:

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

类似于在重复键上插入设置(参数、值)值(“站点名称”、“站点描述”、“aaa”)更新值=值(值)?如果
param
是主键或定义为
UNIQUE
,则该操作可行。此语句的作用是尝试将单词
VALUES
后面的元组插入表中,但如果由于重复键冲突而失败,它将执行
UPDATE
部分。请参阅文档:
INSERT INTO settings (ID, value) VALUES (id1, value1) (id2, value2) ...
ON DUPLICATE KEY UPDATE value = VALUES(value)