1.数据为空时候,count,sum返回结果不同
<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
//Execute a prepared statement by passing an array of values
$sth = $dbh->prepare("select sum(id) as num from user where last_login_time>?");
$rs = $sth->execute([date('Y-m-d H:i:s')]);
$red = $sth->fetch(PDO::FETCH_ASSOC);
var_dump($red);
结果:
<?php
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = '';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
//Execute a prepared statement by passing an array of values
$sth = $dbh->prepare("select count(*) as num from user where last_login_time>?");
$rs = $sth->execute([date('Y-m-d H:i:s')]);
$red = $sth->fetch(PDO::FETCH_ASSOC);
var_dump($red);
结果:
所以对于sum的值需要处理一下$sum?:0
2.时间筛选问题
需求:统计昨天的数据,数据库字段created_at datetime类型
where TO_DAYS(NOW())-TO_DAYS(created_at)=1 这就表示取昨天数据
3.建表字段命名规范
字段名不应该为SQL语句中自带的操作符,例如:JOIN,CONDITION,GROUP,DISTINCT等,否则在插入,更新时候会报错