我有一个查询:
INSERT INTO tx3_hu_villages (uid,vid,x,y,name,population) VALUES
(122,2569,-29,36,'qwertzuiop',330),
(122,52915,-134,25,'asdfghjkléá',916)
ON DUPLICATE KEY UPDATE
name=VALUES(name),population=VALUES(population);
它在 MySQL Workbench 中运行良好,但在 PHP 中我收到此错误:
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 1
CREATE TABLE `tx3_hu_villages` (
`vid` int(11) unsigned NOT NULL,
`uid` int(11) unsigned DEFAULT NULL,
`x` smallint(6) DEFAULT NULL,
`y` smallint(6) DEFAULT NULL,
`name` varchar(60) DEFAULT NULL,
`population` smallint(5) unsigned DEFAULT 0,
PRIMARY KEY (`vid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
如果没有ON DUPLICATE KEY UPDATE
PHP 的工作也很好。
这是PHP代码:
$sql = "INSERT INTO ".$table_name."_villages (uid,vid,x,y,name,population) VALUES ";
for($i=0;$i<count($v);$i++){
$sql.= "(".$v[$i]['uid'].",".$v[$i]['vid'].",".$v[$i]['x'].",".$v[$i]['y'].",'".$v[$i]['village']."',".$v[$i]['population']."),";
}
$sql[strlen($sql)-1] = "";
$sql.= "ON DUPLICATE KEY UPDATE name=VALUES(name),population=VALUES(population);";
echo $sql;
有什么问题?