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 关键字