Произошла ошибка при импорте в базу данных 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