【发布时间】:2015-05-09 03:27:21
【问题描述】:
我正在制作一个基于 Web 的应用程序,它允许用户根据他们的输入创建路线。用户将航路点添加到谷歌地图并获取纬度和经度点并将其复制到网站上的表格中,然后使用 PHP 将数据发送到 MySQL 数据库。
我在将 lat 和 lon 点添加到我的 MySQL 数据库时遇到了问题。我正在使用数据类型“POINT”。但是,当我将点发送到数据库时,我收到错误“无法从您发送到 GEOMETRY 字段的数据中获取几何对象”。
我花了好几天研究这个错误。我尝试添加空间索引,但 MySQL 不允许。我已经尝试更改表格,以便将该行更改为update table set point_latlon = POINT(lat lon),但它告诉我 lat 没有定义,我找不到解决方案。
我真的不知道如何解决这个错误,并且已经用尽了我所有的资源。
这是我的桌子:
CREATE TABLE user_input (
point_id not null primary key auto_increment,
point_desc varchar(40),
point_LatLon not null point
);
这是我的插入语句:
$sql = "INSERT INTO user_input (point_desc, point_latLon) VALUES ('$_GET[waypoint_in_Desc]', 'GeomFromText($_GET[waypoint_in_LatLon])') ;";
如果我遗漏了任何内容或未正确格式化我的帖子,这是我第一次发帖致歉。提前致谢。
【问题讨论】:
-
我从来没有用过点,我用浮点数来表示我的经纬度点。我使用谷歌文档进行数据库配置和实现,你看过那些吗?您的代码中也有一个 SQL 可注入实例。我会查看谷歌文档,因为我认为这将解决您 90% 的问题。 developers.google.com/maps/articles/phpsqlsearch_v3
-
第一个问题做得很好。欢迎使用 Stack Overflow!
-
为什么使用
point数据类型?我总是使用 FLOAT...
标签: php mysql geospatial