2010-02-17 36 views
1

我希望所有具有特定值的字段都改为不同的值。更改mysql表中的字段?

,但我的代码给了我一个错误

 UPDATE maps 
    SET city_id = $new_id 
    WHERE city_id = $old_id 

你不能写这样呢?

我得到这个错误代码:

Couldn't execute query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 
+1

你可能需要在引号中加上''$ newName''。 – 2010-02-17 22:15:44

+0

其实这些应该是ID的...我改变它 – ajsie 2010-02-17 22:16:49

+1

问题是试图取代你用来找到记录 – 2010-02-17 22:19:57

回答

1
$query = "UPDATE maps 
SET city_id = '$new_id' 
WHERE city_id = '$old_id'"; 

其他例子here

+0

请阅读我更新的问题 – ajsie 2010-02-17 22:20:17

+0

同样的解决方案只需要在每个var附近添加单引号。 – Gabe 2010-02-17 22:21:59

+0

我以为你不需要INT单引号? – ajsie 2010-02-17 22:28:15

1

如果你的ID是整数,确保有没有说是空的,因为该命令

UPDATE maps SET city_id=4 WHERE city_id= 

将会失败,而

UPDATE maps SET city_id='4' WHERE city_id='' 

不会失败,但可能不会更新任何内容,假设city_id是你的表的主键和所有的行应该有一个,所以没有将city_id等于一个空字符串。

如果仍然出现错误,请将脚本回显出完整的SQL字符串(用变量替换为值后),以查看变量中是否存在异常输入。