如何使用相同的字段名更新多个mysql数据库行?

时间:2011-10-07 21:28:08

标签: php mysql database

我正在尝试更新所有共享相同字段名称的多行。

结构如下:

+---+-------+--------+
|id | name  | value  |
+---+-------+--------+
| 1 | color | red    |
| 2 | fruit | apple  |
| 3 | day   | friday |
+---+-------+--------+

所以,比如:

$config_data = "UPDATE system_config SET color = '$_POST[color]', fruit = '$_POST[fruit]', day = '$_POST[day]'";

$success = mysql_query($config_data);

......不行。我该如何执行此查询?

3 个答案:

答案 0 :(得分:2)

尝试

$config_data = "UPDATE system_config SET value = '$_POST[color]' WHERE name = 'color';";
$success = mysql_query($config_data);
$config_data = "UPDATE system_config SET value = '$_POST[fruit]' WHERE name = 'fruit';";
$success = mysql_query($config_data);
$config_data = "UPDATE system_config SET value = '$_POST[day]' WHERE name = 'day'";
$success = mysql_query($config_data);
相反。在这种情况下需要输入更多查询

答案 1 :(得分:0)

您可能不会只在一个查询中执行此操作。

  

mysql_query()向与指定link_identifier关联的服务器上的当前活动数据库发送唯一查询(不支持多个查询)。

http://cl.php.net/manual/en/function.mysql-query.php

如果您想“一次性”进行多次查询,可以使用mysqli_multi_query

此处提供更多文档:http://se2.php.net/manual/en/mysqli.multi-query.php

答案 2 :(得分:0)

update system_config
set value =
case 
when name = 'color' then 'something1'
when name = 'fruit' then 'something2'
when name = 'day' then 'something3'
else value
end