gpt4 book ai didi

php - 如何在 pg_query_params 调用中使用 ST_GeomFromText ('Point($1 $2)' , 4326)

转载 作者:行者123 更新时间:2023-11-29 12:05:01 28 4
gpt4 key购买 nike

我是 postgresql/postgis 的新手,想通过调用 pg_query_param 将几何点类型插入到我的数据库中。我尝试了以下方法:

$query = "INSERT INTO userloc (email, latitude, longitude, the_geom) VALUES($1, $2, $3, ST_GeomFromText('POINT($3 $2)', 4326))";
$rs = pg_query_params($con, $query, array('%$#^@@gmail.com', 0, 0));

但这会产生一个错误:

Warning: pg_query_params(): Query failed: ERROR: parse error - invalid geometry HINT: "POINT($3" <-- parse error at position 8 within geometry in /var/www/html/signup.php on line 26

我尝试从点周围移除单括号,但出现此错误:

Warning: pg_query_params(): Query failed: ERROR: syntax error at or near "$2" LINE 1: ...geom) VALUES($1, $2, $3, ST_GeomFromText(POINT($3 $2), 4326)... ^ in /var/www/html/signup.php on line 26

我意识到我可以简单地插入纬度和经度,然后分别使用这些列来生成 the_geom 列,但是必须有一种方法可以在一个命令中执行此操作,同时仍然受益于使用此 params 函数而不是通常的 pg_query。任何建议表示赞赏。谢谢。

最佳答案

使用ST_MakePoint ,它采用数字输入,可用于参数化查询。 $query 应该是这样的:

INSERT INTO userloc (email, latitude, longitude, the_geom)
VALUES($1, $2, $3, ST_SetSRID(ST_MakePoint($3, $2), 4326));

关于php - 如何在 pg_query_params 调用中使用 ST_GeomFromText ('Point($1 $2)' , 4326),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27988600/

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