Cau*_*Kun 4 php postgresql postgis
我是 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));
Run Code Online (Sandbox Code Playgroud)
但这会产生错误:
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
Run Code Online (Sandbox Code Playgroud)
我尝试从周围删除单个括号,但这给出了这个错误:
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
Run Code Online (Sandbox Code Playgroud)
我意识到我可以简单地插入纬度和经度,然后分别使用这些列来生成 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));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1832 次 |
| 最近记录: |