从上周的SQL和Laravel获取数据

时间:2018-08-21 10:33:41

标签: php sql laravel

我目前正在使用Web应用程序并使用ChartJS。我需要获取最近7天的数据并进行计数。我解释:

我需要计算从最后7天开始每天注册的客户端数量,以便使用ChartJS进行显示。

我对SQL请求有一些疑问。

获取今天的日期:

$jj = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d"), date("Y")));

在我的数据库中,我有一个带有时间戳的'created_at'列:

2018-08-21 11:07:59

对于请求,我遵循了一些教程并做到了:

SELECT count(client.id) FROM parcel WHERE created_at = :dateclient, array('dateclient' => $jj);

但是该请求无效,我认为存在一些错误。如果某些专业人士知道该怎么做!

顺便说一句:我暂时要求一次约会,但是我需要做7天

1 个答案:

答案 0 :(得分:0)

请使用雄辩的查询来克服SQL注入

这里我假设您在App文件夹中有Models文件夹,否则您可以直接使用 Parcel :: 而无需 Models \ Parcel

$lastWeek = date('Y-m-d', strtotime("-7 day", date('Y-m-d')));
/* In the following code you can directly get the count value */
$parcelCount  = Models\Parcel::whereDate('created_at', $lastWeek)->count();

或使用 DB :: raw

$parcelCount = Models\Parcel::select(\DB::raw("COUNT(id) as parcel_count"))
    ->whereDate('created_at', $lastWeek)
    ->first();