У меня есть эти запросы для подготовить:
$query_prep_insert['Prepare'] = 'INSERT INTO schema_125."testalogg" (the_geom, OBJECTID_1) VALUES (?,?),(?,?);';
И для выполнять:
$query_prep_insert['Insert'] = array(
'ST_SetSRID(ST_GeomFromGeoJSON(\'{"type":"Point","coordinates":[961223.18558917,5745885.0742317]}\'), 3395)',
'1540',
'ST_SetSRID(ST_GeomFromGeoJSON(\'{"type":"Point","coordinates":[961201.163454,5745.5677]}\'), 3395)',
'1541'
);
И затем, используя PDO, я отправляю запросы:
$stmt = $connection->prepare( $query_prep_insert['Prepare'] );
$stmt->execute( $query_prep_insert['Insert'] );
Я получаю ошибка:
PDOStatement :: execute (): SQLSTATE [XX000]: внутренняя ошибка: 7 ОШИБКА:
ошибка синтаксического анализа — неверная геометрия ПОДСКАЗКА: «ST» <- ошибка разбора
цитирование pdo препятствует правильной интерпретации функций.
Есть способ избежать или избежать цитирования функций?
Ps. Я не могу заставить работать решение в:
Использование функций MySQL в PHP PDO подготовил операторы потому что я думаю, что значения не правильно соединены, и я получаю ошибку «Несоответствие типа данных».
Спасибо,
Rickyx
Решено: использовать это для подготовки:
$query_prep_insert['Prepare'] = 'INSERT INTO schema_125."testalogg" (the_geom, OBJECTID_1) VALUES ( ST_SetSRID(ST_GeomFromGeoJSON( ? ), 3395), ? );';
И просто необработанное значение для выполнения:
$query_prep_insert['Insert'] = array(
'{"type":"Point","coordinates":[961223.18558917,5745885.0742317]}',
'1541'
);
Спасибо, Фрэнк.
Других решений пока нет …