gpt4 book ai didi

php - 使用准备好的语句插入 GIS 几何图形

转载 作者:行者123 更新时间:2023-11-29 02:04:49 28 4
gpt4 key购买 nike

有没有办法使用准备好的语句将 GIS 数据插入 mysql 数据库(使用 PHP/PDO)?

这是失败的:

$stmt = $sql->prepare("INSERT INTO geo SET location= :loc");
$sql->execute($stmt,array('loc'=>"PointFromText('POINT(43.5499152 7.0232372)')"));

其中 geo.location 列的类型为 POINT。

最佳答案

43.5499152 是纬度,7.0232372 是经度吗?如果是这样,考虑到 POINT 的 WKT 格式是 POINT(X Y),其中 X 是经度,Y 是纬度,有效的表示形式是:

POINT(7.0232372 43.5499152)

考虑到这一点,您可以尝试以下方法:

$stmt = $sql->prepare("INSERT INTO geo SET location = PointFromText('POINT(:lng :lat)')");
$stmt->execute(array('lat' => 43.5499152, 'lng' => 7.0232372));

如果您没有纬度和经度,只需将位置设置为空:

$stmt = $sql->prepare("INSERT INTO geo SET location = null");
$stmt->execute();

此外,您可能想要设置 SRID,在您的情况下为 4326:

$stmt = $sql->prepare("INSERT INTO geo SET location = PointFromText('POINT(:lng :lat)', 4326)");
$stmt->execute(array('lat' => 43.5499152, 'lng' => 7.0232372));

关于php - 使用准备好的语句插入 GIS 几何图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8413906/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com