我有这个查询来准备:
$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'
);
谢谢弗兰克。