MySQL更新查询中的语法错误

时间:2012-05-31 19:28:07

标签: mysql mysql-error-1064

我有一个包含13个字段的数据库表,其中9个字段由表单中的用户输入填充。插入新行工作正常,但我在更新现有行时遇到问题。我问朋友他的意见,他忍不住帮忙。

我需要更新所有用户可调整的字段,因为每次调整都可以涵盖一个到所有字段,因此需要使用多个SET语句进行查询。更新查询是

$query = sprintf("UPDATE tour 
  SET StopNum=%d, SET ForwardLink=%d, SET BackLink=%d, SET LeftLink=%d, 
  SET RightLink=%d, SET Name= '%s', SET Lat=%f, SET Lon=%f, SET Heading=%d 
  WHERE FileName='%s'", $_POST['curStop'], $_POST['nextStop'], $_POST['prevStop'],
  $_POST['leftStop'], $_POST['rightStop'], $location, $latitude, $longitude, 
  $heading, $image);

使用上述查询,我​​在示例更新中获得以下打印输出:

UPDATE tour SET StopNum=0, SET ForwardLink=0, SET BackLink=0, SET LeftLink=0, SET RightLink=0, SET Name= 'Start', SET Lat=98.154000, SET Lon=-75.214000, SET Heading=100 WHERE FileName='../panos/photos/1-prefix_blended_fused.jpg'

根据mysql错误消息,我需要查看手册,以便在

附近使用正确的语法
'SET ForwardLink=0, SET BackLink=0, SET LeftLink=0, SET RightLink=0, SET Name= 'S' at line 1

字段'Name'被定义为可以为空的varchar(250)容器,因此5个字母足以存储空间。

1 个答案:

答案 0 :(得分:3)

语法应为:

UPDATE table SET column=1,column1=2,column2=3 WHERE filename='asdf'