php - 如何在 mysqli_query [PHP] 中包含数学?
问题描述
SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) )
* cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin(radians(lat)) ) ) AS distance
FROM markers
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20;
我目前正在尝试在我的 php 代码中使用此查询,但我不确定如何在 mysqli_query 中成功实现它。
$query = "SELECT FROM MyTable, (3959 * acos(cos(radians(37)) * cos(radians(TableLat)) * cos(radians(TableLng) - radians(-122)) + sin(radians(37)) * sin(radians(TableLat))))
AS distance
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20";
$stmt = mysqli_query($connectionInfo->conn, $query);
if (!$stmt)
{
echo $connectionInfo->conn->error;
}
这显然不起作用,因为所有与数学相关的东西都嵌套在“”中。尝试创建查询时如何绕过这个?
错误信息:
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的 'FROM MyTable, (3959 * acos(cos(radians(37)) * cos(radians(Lat)) * cos(radi' 附近使用正确的语法
解决方案
您的语法有错误 FROM 在字段之前:
$query = "SELECT (3959 * acos(cos(radians(37)) * cos(radians(TableLat)) * cos(radians(TableLng) - radians(-122)) + sin(radians(37)) * sin(radians(TableLat))))
AS distance
FROM MyTable
HAVING distance < 25
ORDER BY distance
LIMIT 0 , 20";
推荐阅读
- python - if 语句中的布尔表达式过多
- node.js - (Oracle) LIKE 子句不适用于数字绑定变量
- flutter - Flutter open_file.dart没有打开pdf文件
- python - TypeError: object() 不带参数 - 在 Pandas 中创建滚动面板时间序列
- python - Pandas DataFrame 在 .sum() 之后丢弃 0.000000 个值
- c# - 监听按键 .NET 控制台应用程序不会停止运行应用程序
- google-bigquery - BigQuery row_number 删除重复项
- python - 使用损坏的视图更新 CouchDB 1.7.1 -> 3.0
- c# - 新位图中组合图像的位置和大小
- javascript - 从 mtlnovel.com 获取 html 返回 403