这是SQL:
TRUNCATE TABLE `dc_path`;
INSERT INTO dc_path (coords) VALUES('(40.64406436923055, -8.638539251709062)');
INSERT INTO dc_path (coords) VALUES('(40.62791121610622, -8.615193304443437)');
INSERT INTO dc_path (coords) VALUES('(40.62895347295352, -8.6625718444825)');
如果我尝试在phpmyadmin上执行该查询,它的工作正常,但通过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 'INSERT INTO dc_path (coords) VALUES('(40.64406436923055, -8.638539251709062)');I' at line 1
我尝试了很多东西,但我无法解决这个问题!
提前致谢。
编辑:
PHP
function insertPath($coords){
$conn = connectDB();
$coords = explode(";",$coords);
$sql = "";
$sql = "TRUNCATE TABLE `dc_path`; ";
for($i=0;$i<count($coords)-1;$i++){
$sql .= "INSERT INTO dc_path (coords) VALUES('".$coords[$i]."');";
}
echo $sql;
$query = mysql_query($sql, $conn) or die(mysql_error());
closeDB($conn);
return true;
}
(40.638854101691635, -8.6515855163575);(40.629474595277166, -8.63235944213875);
答案 0 :(得分:4)
您无法在一次mysql_query()
电话中执行多次查询。
因此将该字符串拆分为4个独立的查询(最后没有;
),一切都会正常工作
答案 1 :(得分:3)
不要使用旧的mysql_connect API,请使用mysqli - 它支持多个语句。
详细了解不同的PHP - mySQL apis:http://www.php.net/manual/en/mysqlinfo.api.choosing.php
在那里它表示不建议将新的mysql API用于新项目,并且已经公布了长期弃用。
答案 2 :(得分:3)
您使用什么功能来运行它?如果您正在使用mysql_query,那么您一次只能执行一个查询,但是您可以将insert语句合并为一个类似的
INSERT INTO dc_path (coords) VALUES
('(40.64406436923055, -8.638539251709062)'),
('(40.62791121610622, -8.615193304443437)'),
('(40.62895347295352, -8.6625718444825)');
答案 3 :(得分:2)
function insertPath($coords){
$conn = connectDB();
$coords = explode(";",$coords);
mysql_query("TRUNCATE TABLE `dc_path`", $conn);
for($i=0;$i<count($coords)-1;$i++){
mysql_query("INSERT INTO dc_path (coords) VALUES('".$coords[$i]."')", $conn);
}
closeDB($conn);
return true;
}
答案 4 :(得分:1)
使用mysql_query()无法查询多个语句。
像这样查询
for($i=0;$i<count($coords)-1;$i++){
$sql = "INSERT INTO dc_path (coords) VALUES('".$coords[$i]."');";
$query = mysql_query($sql, $conn) or die(mysql_error());
}