php - MySQL 多次更新 : many queries equivalent without foreach()

标签 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');...

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

最佳答案

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

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

关于php - MySQL 多次更新 : many queries equivalent without foreach(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18011939/

相关文章:

php - 需要帮助显示来自 mysql 数据库的数据

python - MySQL 驱动程序与 INFORMATION_SCHEMA 存在问题?

java - 想在MySQL数据库中存储对象

mysql - MyBatis 从 MySql 数据库中检索整数作为枚举

php - 在数据库中实现面向对象类的最佳实践?

php - Kartik/Krajee Select2 未禁用

php - 这个解决方案有什么问题? (Perm-Missing-Elem codility test)

php - 当if条件满足时隐藏div标签

php - 是否可以在 PHP 中的 ArrayIterator 对象上覆盖 print_r 的行为?

python - 基于Python中的公共(public)列合并两个文本文件