首页 > 解决方案 > 表中没有记录时无法获取地理点

问题描述

当我使用

'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

但是当表格为空时,这个并没有返回点但是当我手动在表格中创建一行时,它正在工作......

我怎样才能解决这个问题?

谢谢

标签: mysqllaravelgeospatial

解决方案


如果没有记录,它将返回 0:

DB::select("SELECT COALESCE(POINT(?, ?),0) as point FROM my_table", [$data['lng'], $data['lat']])[0]->point

推荐阅读