MySqli在多个插入时插入错误

时间:2016-10-26 01:02:35

标签: php mysql

所以,我正在使用这段代码从XML文件中提取数据。当我尝试插入时,我收到一条错误消息。如果我使用相同的输出和MySQL Workbench中的INSERT,它工作正常。所以我假设它是PHP解释数据的方式。我的头靠在墙上,所以任何帮助都会受到赞赏。以下是代码:

<?php

 $completeurl = "gps.kml";
 $xml = simplexml_load_file($completeurl);

 $placemarks = $xml->Document->Folder->Placemark;
 mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
 $con=mysqli_connect("localhost","root","V1ct0ry4439253","gps");
//Check connection
if (mysqli_connect_errno())
 {
 echo "Failed to connect to MySQL: " . mysqli_connect_error();
 }

$query = '';
$run='';
for ($i = 0; $i < sizeof($placemarks); $i++) {
$coordinates = $placemarks[$i]->name;
 $cor_d  =  explode(' ', $placemarks[$i]->Point->coordinates);
 $qtmp=array();
 foreach($cor_d as $value){
      $tmp = explode(',',$value);
      $ttmp=$tmp[1];
      $tmp[1]=$tmp[0];
      $tmp[0]=$ttmp; 
      $qtmp= '' . $tmp[0] . '' .$tmp[1].'';
 }

$cor_d = $qtmp;
$query .='(\''.$coordinates.'\', \''.$cor_d.'\')';
$run .="INSERT INTO gps_history (name, coordinates) VALUES ".$query."";

//break;
 }
 echo $run;
 mysqli_query($con,$run);

mysqli_close($con);
 ?>

1 个答案:

答案 0 :(得分:0)

默认情况下,许多数据库连接不允许在用逗号分隔的单个语句中串起多个查询(作为防止一种SQL注入的安全措施)。这可能就是你所经历的。

尝试在循环中移动Scanner 并确保它一次只运行一个查询。