我只是在测试从 Google Developers 获取的 Haversine 公式:https ://developers.google.com/maps/articles/phpsqlsearch_v3#findnearsql
我已将代码段放入我的代码中,它给了我一个 SQL 错误。
这是我在 CakePHP 中的模型:
<?php
App::uses('AppModel', 'Model');
class LocationModel extends Model {
public $name = 'Location';
public function getNearest()
{
$this->Location->query("SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( long ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM locations HAVING distance < 25 ORDER BY distance LIMIT 0 , 20";);
}
}
我从字面上复制并粘贴了代码并将其放入查询函数中。我不认为这与我的数据库或其他任何东西有关,而是 SQL 中的语法错误,但我看不到它。它有什么问题?
这是错误:
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'getNearest' at line 1