我正在尝试更新所有共享相同字段名称的多行。
结构如下:
+---+-------+--------+
|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);
......不行。我该如何执行此查询?
答案 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