SQL语句 max(`字段`) 使用mysqli_query()影响结果为1行的问题
上面的话可能有点绕口,不过这的确是我遇到一个小Bug,所谓我的Bug是因为经验太少而产生的个人问题导致的;
首先,看两个mysql命令行下的结果行为:
selct max(`maxv`) from articles; //会出现一个空条数;
select * from atricles; //直接告诉你为空;
下面,是PHP代码:
//连接数据库的代码
function connectMysqlDB($sql){
$host = 'localhost';
$user = 'root';
$pwd = '';
$db = 'newscrawler';
$link = mysqli_connect($host,$user,$pwd,$db) or die('<p>连接数据库发生错误'.mysqli_connect_error().'</p>');
mysqli_query($link, 'set names utf8');
$ret = mysqli_query($link, $sql);
mysqli_close($link);
return $ret;
}
//返回mysqli语句执行结果;
$sql = 'select max(`maxv`) from articles';
$this->MAXV=connectMysqlDB($sql);
// 1、打印影响行数;
printf('总共返回数据:%s 。',mysqli_num_rows($this->MAXV)); //打印结果是1行;
// 2、获取一行作为数字或关联数组
var_dump(mysqli_fetch_array($this->MAXV));
/* 打印结果:
array (size=2)
0 => null
'max(`maxv`)' => null
*/
个人对这个注意下,在查询是否数据有数据的时候,总是看到结果影响了1行,困惑了半天,最后还得感谢某个大佬的解答才得以解决。
May 5 , 2018