mysql - Laravel 8:查询构建器转义“大于”运算符
问题描述
尝试通过 Eloquent 运行查询时出现 MySQL 错误。
飞行控制器.php:
$flightsToFinish = SrteFlight::whereRaw('DATEDIFF(MINUTE, NOW(), disc_time) > 15')->get();
foreach ($flightsToFinish as $flightToFinish)
{
$flightToFinish->status = 1;
$flightToFinish->save();
}
错误:
Illuminate\Database\QueryException: SQLSTATE[42000]: Syntax error or access violation:
1582 Incorrect parameter count in the call to native function 'DATEDIFF' (SQL: select * from
`srte_flights` where DATEDIFF(MINUTE, NOW(), disc_time) > 15) in file
/var/www/vhosts/ar.ivao.aero/httpdocs/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 671
我错过了什么吗?提前致谢。
解决方案
DATEDIFF 只需要 2 个参数。(我认为您滥用了 SQL 服务器语法而不是 MySQL 语法)
推荐阅读
- apache-spark - ValueError:feature_columns 的项目必须是 _FeatureColumn。(张量流 1.13)
- linux - POLLHUP 与 POLLRDHUP?
- php - PHP从explode/foreach循环中获取id并计算价格
- android - 如何在 Android 上更改意图 ACTION_VIEW 的地址栏背景颜色?
- javascript - 为什么三元运算符不在状态属性上工作
- mongodb - 流星 beforeunload 不会重置 mongo
- shopify - 在 Shopify 中创建订单时如何添加自定义文本
- hibernate - 如何修复 ClassNotFoundException:休眠项目 intellij 中的 javax.persistence.Persistence
- python - discord.py on_message 在放弃 linux 作业并断开连接后停止工作
- ionic-framework - 由于 SSL 证书,InAppBrowser 无法加载网站