mysql - 表中没有记录时无法获取地理点
问题描述
当我使用
'geopoint' => DB::raw('POINT('.$data['lat'].', '.$data['lng'].')')
它正在工作,但是它很容易受到 SQLInjection 的攻击。所以我用
'geopoint' => DB::select("SELECT POINT(?, ?) as point FROM my_table", [$data['lng'], $data['lat']])[0]->point
但是当表格为空时,这个并没有返回点但是当我手动在表格中创建一行时,它正在工作......
我怎样才能解决这个问题?
谢谢
解决方案
如果没有记录,它将返回 0:
DB::select("SELECT COALESCE(POINT(?, ?),0) as point FROM my_table", [$data['lng'], $data['lat']])[0]->point
推荐阅读
- jdbc - 如何在单个 Kafka 连接器属性文件中配置多个自定义查询
- python - 使用 '=' 操作符复制 numpy 数组。为什么它有效?
- flutter - Flutter:首次提交时无法获取文本字段值
- openshift - Openshift 上的自定义 Ha-proxy
- loopbackjs - LoopBack v4 中对其他微服务的强类型调用
- c# - Enable-Migrations - 无法将参数绑定到参数“路径”
- javascript - 如何在 ReactJS 中创建一个包含所有验证和错误处理的通用文本框?
- azure-devops - 将 Azure CLI 任务的结果存储到发布变量中
- android - 应用程序运行时不起作用 - 权限错误
- java - 无法获得输出“用户名已被使用!” 当我输入已存储在数据库中的用户名时