Импорт XML-> GeomFormText -> MYSQL - PullRequest
0 голосов
/ 02 ноября 2019

Произошла ошибка при импорте в базу данных MYSQL. Кто-нибудь знает ошибку? Ошибка в массиве Statement ->, но я не могу его найти

$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]: недопустимый номер параметра: количество связанных переменных не соответствует количеству токенов в /var/customers/webs/florian/v4/Geo/test3.php в строке 39

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...