问题:
使用 PHPmyAdmin 5.2.1 版工具编辑或插入几何对象时,会抛出错误:#1416 - 无法从发送到 GEOMETRY 字段的数据中获取几何对象。
此问题在 PHPmyAdmin 版本 5.2.1 中可以重现,但在 5.1.3 版本中无法重现。
具体来说,当我使用内部工具手动输入 Lat 和 lng 值时,它会生成 SQL 查询,在该查询下面将转义字符 (') 插入到查询字符串中。
UPDATE `allpages_geodata` SET `geoData` = ST_GeomFromText('\'POINT(2.9501061323936 42.27264217835078)\',0') WHERE `allpages_geodata`.`pageId` = 'a0205'
我还尝试在工具和多个浏览器中交换纬度和经度(清除缓存),但它仍然抛出相同的错误。
解决方法:
我唯一的解决方法是手动创建 SQL 查询并在 phpMyadmin SQL 选项卡或从 PHP 脚本中运行它。
UPDATE `allpages_geodata` SET `geoData` = ST_GeomFromText('POINT(2.9501061323936106 42.27264217835078),0') WHERE `allpages_geodata`.`pageId` = 'a0205';
这是 5.1.3 版本特有的 PHPmyadmin 错误,当您使用内置 GUI 工具定义几何 POINT 时,它会错误地构建 SQL 查询。
我发布此内容的原因是如果其他人陷入困境并被迫使用共享托管提供商的 PHPmyAdmin 版本 5.1.3。
希望这能为其他人节省 3 个小时的故障排除时间。