昨天在做项目时,遇到几个小问题,今天总结一下分享给大家。
问题1:MySQL中select查询语句中多了空格,导致报语法错,但是很难发现问题。
正常语句:"select * from table group by name order by id"
错误语句:"select * from table group by name order by id"
对比上面两个语句,错误语句中在from后边可能敲代码时多打了一个空格,导致语法错误。在众多代码中很难发现。这个虽然不是什么高大上问题,但是一旦遇到很头疼。
问题2:select count(*) 语句发现不论表中有多少行,查询结果始终1。
$sql="select count(*) as total from login_log order by id";
$result=$mysqli->query($sql);//查询符合条件的记录总数
$num = $result->num_rows;
echo $num;
print_r($result)结果:mysqli_result Object ( [current_field] => 0 [field_count] => 1 [lengths] => [num_rows] => 1 [type] => 0 )
echo $num结果为1.
原因:count(*)的输出结果为长度是1的数组,所以不管表中有多少行,结果都是1。
解决办法:将 $num = $result->num_rows修改为$num = $result->fetch_row()。
问题3:date("Y-m-d H:i:s")函数获取的时间2017-07-26 03:56:05不是想要的。
原因:PHP默认时区不是北京。
解决办法:在获取时间date("Y-m-d H:i:s")前加如下代码:date_default_timezone_set(PRC);其中,PRC的值可以为:Asia/Chongqing ,Asia/Shanghai,Asia/Beijing等。或者date("Y-m-d H:i:s", time()+8*60*60)。