gpt4 book ai didi

php - 绑定(bind)参数到 Db::raw laravel 查询

转载 作者:可可西里 更新时间:2023-11-01 07:21:47 24 4
gpt4 key购买 nike

我有以下原始查询:

$results = Db::select( Db::raw("SELECT HOUR(created_at) as hour, COUNT(*) as count
FROM `visited`
WHERE created_at >= DATE_SUB(NOW(),INTERVAL 16 DAY)
GROUP BY HOUR(created_at)") );

我需要参数化日期间隔,所以我尝试了这个:

$days = 16;
$results = Db::select( Db::raw("SELECT HOUR(created_at) as hour, COUNT(*) as count
FROM `visited`
WHERE created_at >= DATE_SUB(NOW(),INTERVAL :days DAY)
GROUP BY HOUR(created_at)", ["days" => $days]) );

但是我收到以下错误:

"SQLSTATE[HY000]: General error: 2031

显然绑定(bind)不起作用。我做错了什么?

最佳答案

试试这个:

$results = DB::select('SELECT HOUR(created_at) as hour, COUNT(*) as count FROM visited WHERE created_at >= DATE_SUB(NOW(),INTERVAL ? DAY) GROUP BY HOUR(created_at)', [16]);

您甚至可以使用命名绑定(bind):

$results = DB::select('SELECT HOUR(created_at) as hour, COUNT(*) as count FROM visited WHERE created_at >= DATE_SUB(NOW(),INTERVAL :days DAY) GROUP BY HOUR(created_at)', ['days' => 16]);

不需要使用 DB::raw(),只需使用 DB::select() 进行简单的原始选择查询:https://laravel.com/docs/master/database#running-queries

关于php - 绑定(bind)参数到 Db::raw laravel 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41913973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com