PostGisl Pdo prepare-insert:引用的函数


PostGisl Pdo prepare-insert: functions quoted

我有这个查询来准备

$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 会阻止正确解释函数。有没有办法转义或避免引用函数?

附言。我无法使工作成为解决方案:在 PHP PDO 准备语句中使用 MySQL 函数,因为我认为值未正确连接,并且出现错误"数据类型不匹配"。

谢谢瑞奇克斯

已解决:使用它来准备:

$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'
);

谢谢弗兰克。