导入XML-> GeomFormText-> MYSQL

时间:2019-11-02 11:49:43

标签: php mysql pdo geolocation

导入MYSQL数据库时出错。 有人知道错误吗? 语句有错误->数组,但我找不到它

$xml = simplexml_load_file("TASKDATA.XML");

  $query = "
  INSERT INTO Schlag
   (`Sch_Nummer`, `Sch_Name`,`PFD_ID`,Betriebsnummer, geo)
   VALUES(:nummer, :name, :idxml, :bn, :geon );
  ";

    $statement = $pdo->prepare($query);

    foreach ($xml->PFD as $pfd) {


  $statement->execute(
        array(
          ':nummer'   => $pfd->attributes()['B'],
          ':name'  => $pfd->PLN->LSG->attributes()['B'],
          ':idxml'  => $pfd->attributes()['A'],
          ':bn'  => $pfd->attributes()['F'],
          ':geon'  => "GeomFromText('POLYGON(( 28.181365 -25.874693, 28.180419 -25.874313, 28.180177 -25.873869, 28.180236 -25.87377, 28.181557 -25.873095, 28.181782 -25.873173, 28.181871 -25.873357, 28.18174700000001 -25.873426, 28.181959 -25.873838, 28.18267000000001 -25.873338, 28.183323 -25.872918, 28.184112 -25.872499, 28.184907 -25.872125, 28.185294 -25.871959, 28.18587 -25.871776, 28.186254 -25.871709, 28.186856 -25.87169000000001, 28.187051 -25.871255, 28.187372 -25.870961, 28.188084 -25.870562, 28.188201 -25.870713, 28.187426 -25.871118, 28.187184 -25.87134800000001, 28.187059 -25.871679, 28.18796800000001 -25.871907, 28.187878 -25.872046, 28.187021 -25.871787, 28.186193 -25.871833, 28.185301 -25.872108, 28.184396 -25.872514, 28.18467 -25.872961, 28.184454 -25.873065, 28.184185 -25.872605, 28.183725 -25.872816, 28.183279 -25.87313, 28.182548 -25.873597, 28.18219 -25.873924, 28.181972 -25.874078, 28.181397 -25.874637,28.181365 -25.874693 ))')",

        )
      ); 

这也不起作用:

 $query = "
  INSERT INTO Schlag
   (`Sch_Nummer`, `Sch_Name`,`PFD_ID`,Betriebsnummer, geo) 
   VALUES(:nummer, :name, :idxml, :bn, GeomFromText('POLYGON(( :geon ))')  );
  ";

    $statement = $pdo->prepare($query);

    foreach ($xml->PFD as $pfd) {

  $geo= "28.181365 -25.874693, 28.180419 -25.874313, 28.180177 -25.873869, 28.180236 -25.87377, 28.181557 -25.873095, 28.181782 -25.873173, 28.181871 -25.873357, 28.18174700000001 -25.873426, 28.181959 -25.873838, 28.18267000000001 -25.873338, 28.183323 -25.872918, 28.184112 -25.872499, 28.184907 -25.872125, 28.185294 -25.871959, 28.18587 -25.871776, 28.186254 -25.871709, 28.186856 -25.87169000000001, 28.187051 -25.871255, 28.187372 -25.870961, 28.188084 -25.870562, 28.188201 -25.870713, 28.187426 -25.871118, 28.187184 -25.87134800000001, 28.187059 -25.871679, 28.18796800000001 -25.871907, 28.187878 -25.872046, 28.187021 -25.871787, 28.186193 -25.871833, 28.185301 -25.872108, 28.184396 -25.872514, 28.18467 -25.872961, 28.184454 -25.873065, 28.184185 -25.872605, 28.183725 -25.872816, 28.183279 -25.87313, 28.182548 -25.873597, 28.18219 -25.873924, 28.181972 -25.874078, 28.181397 -25.874637,28.181365 -25.874693";
  $statement->execute(
        array(

          ':nummer'   => $pfd->attributes()['B'],
          ':name'  => $pfd->PLN->LSG->attributes()['B'],
          ':idxml'  => $pfd->attributes()['A'],
          ':bn'  => $pfd->attributes()['F'],
          ':geon'  => $geo,
        )
      );

出现此错误 警告:PDOStatement :: execute():SQLSTATE [HY093]:无效的参数编号:绑定变量的数量与第39行的/var/customers/webs/florian/v4/Geo/test3.php中的令牌数量不匹配

0 个答案:

没有答案