MySQL 易错点

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等,否则在插入,更新时候会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值