PHP - mySQL 查询问题
我正在我的 SQL 数据库中找到具有 lon/lat 的半径区域中最近的位置(来自 Google API 的长/纬度),这是我的查询:
$query = "SELECT id, ( 3959 * acos( cos( radians(".$lat.") ) * cos( radians( lat ) ) * cos( radians( lon ) - radians(".$long.") ) + sin( radians(".$lat.") ) * sin( radians( lat ) ) ) ) AS distance FROM finder_location HAVING distance < 25 ORDER BY distance LIMIT 0 , 1";
$result = mysql_query( $query );
$row = mysql_fetch_array($result);
echo $row['id'];
查询在 phpMyAdmin 内正确返回为:
id 9
distance 0.74066713768542
因此,查询正在正确编译。 ..
但是,当我尝试用 PHP 输出时,我收到以下错误:
您的 SQL 语法有错误; 检查对应的手册 您的 MySQL 服务器版本 在 '>) 附近使用正确的语法 ) * cos( 弧度( 纬度 ) ) * cos( 弧度( 经度 ) - 弧度(-73.988307 ) )' 在第 1 行警告:mysql_fetch_array():提供 参数不是有效的 MySQL 结果 资源
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的 php
$lat
变量未正确填充。您可以在 mysql 错误中看到 html 标记的尾部。调试您的$lat
和$long
以确保它们在查询之前具有正确的值。Your php
$lat
variable is not populated correctly. You can see the trailing end of an html tag in the mysql error. Debug your$lat
and$long
to make sure they have the correct values before the query.