我有一个包含 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错误消息,我需要查看手册以获取正确的语法以使用near
'SET ForwardLink=0, SET BackLink=0, SET LeftLink=0, SET RightLink=0, SET Name= 'S' at line 1
字段 'Name' 被定义为一个可为空的 varchar(250) 容器,因此 5 个字母的存储空间绰绰有余。