ON DUPLICATE KEY 不工作
ON DUPLICATE KEY not working
我目前正在尝试完成一项非常简单的任务。如果 ID(自动递增)不存在,则信息由 "post.php" 在处理信息的地方检索并应插入数据库,如果 ID 存在则更新数据。
运行 脚本不会在数据库中写入任何内容。我试图在页面中打印查询,并将 copy/paste SQL 打印到 PhpMyAdmin 中。它returns
#1064 - 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 'long, description, mobile, type, reported, embed, live, img_url)
VALUES ('', 'TE' at line 1
我的代码是:
$query="插入 <code>xxy
(ID
, name
, address
, lat
, long
, description
, mobile
, type
, reported
, embed
, live
, img_url
) VALUES('$id' , '$name', '$address', '$lat', '$lon', '$description', '$mobile', '$type', '$reported', '$embed', '$live' , '$target_file') 重复密钥更新
name
=VALUES('$name'), address
=VALUES('$address'), lat
=VALUES('$lat'), long
=VALUES( '$lon'), description
=VALUES('$description'), mobile
=VALUES('$mobile'), type
=VALUES('$type'), reported
=VALUES('$reported'), embed
=VALUES('$embed'), live
=VALUES('$live'), img_url
=VALUES('$ img_url')";
感谢您的帮助!
更新:
我也试过反引号保留字。我当前的 SQL 代码仍然返回错误。
1064 - 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 ''$name'), address=VALUES('$address'), lat=VALUES('$lat'), lon=VALUES('$lon'), de' at line 2
我使用的更新后的 SQL 代码是:
INSERT INTO `xxy` (`ID`, `name`, `address`, `lat`, `lon`,
`description`, `mobile`, `type`, `reported`, `embed`, `live`,
`img_url`) VALUES('$id', '$name', '$address', '$lat', '$lon',
'$description', '$mobile', '$type', '$reported', '$embed', '$live',
'$target_file') ON DUPLICATE KEY UPDATE `name`=VALUES('$name'),
`address`=VALUES('$address'), `lat`=VALUES('$lat'),
`lon`=VALUES('$lon'), `description`=VALUES('$description'),
`mobile`=VALUES('$mobile'), `type`=VALUES('$type'),
`reported`=VALUES('$reported'), `embed`=VALUES('$embed'),
`live`=VALUES('$live'), `img_url`=VALUES('$img_url')
删除 ON DUPLICATE KEY UPDATE
部分中的所有 VALUES
关键字
我目前正在尝试完成一项非常简单的任务。如果 ID(自动递增)不存在,则信息由 "post.php" 在处理信息的地方检索并应插入数据库,如果 ID 存在则更新数据。
运行 脚本不会在数据库中写入任何内容。我试图在页面中打印查询,并将 copy/paste SQL 打印到 PhpMyAdmin 中。它returns
#1064 - 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 'long, description, mobile, type, reported, embed, live, img_url) VALUES ('', 'TE' at line 1
我的代码是:
$query="插入 <code>xxy
(ID
, name
, address
, lat
, long
, description
, mobile
, type
, reported
, embed
, live
, img_url
) VALUES('$id' , '$name', '$address', '$lat', '$lon', '$description', '$mobile', '$type', '$reported', '$embed', '$live' , '$target_file') 重复密钥更新
name
=VALUES('$name'), address
=VALUES('$address'), lat
=VALUES('$lat'), long
=VALUES( '$lon'), description
=VALUES('$description'), mobile
=VALUES('$mobile'), type
=VALUES('$type'), reported
=VALUES('$reported'), embed
=VALUES('$embed'), live
=VALUES('$live'), img_url
=VALUES('$ img_url')";
感谢您的帮助!
更新:
我也试过反引号保留字。我当前的 SQL 代码仍然返回错误。
1064 - 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 ''$name'), address=VALUES('$address'), lat=VALUES('$lat'), lon=VALUES('$lon'), de' at line 2
我使用的更新后的 SQL 代码是:
INSERT INTO `xxy` (`ID`, `name`, `address`, `lat`, `lon`,
`description`, `mobile`, `type`, `reported`, `embed`, `live`,
`img_url`) VALUES('$id', '$name', '$address', '$lat', '$lon',
'$description', '$mobile', '$type', '$reported', '$embed', '$live',
'$target_file') ON DUPLICATE KEY UPDATE `name`=VALUES('$name'),
`address`=VALUES('$address'), `lat`=VALUES('$lat'),
`lon`=VALUES('$lon'), `description`=VALUES('$description'),
`mobile`=VALUES('$mobile'), `type`=VALUES('$type'),
`reported`=VALUES('$reported'), `embed`=VALUES('$embed'),
`live`=VALUES('$live'), `img_url`=VALUES('$img_url')
删除 ON DUPLICATE KEY UPDATE
部分中的所有 VALUES
关键字