php操作MySql数据库时,判断查询结果一般用mysql_num_rows($array)
得到结果集条数,然后判断php执行sql语句返回结果集条数是否大于0。SQLite数据库查询结果无法使用mysql_num_rows()
方法。同时MySql查询结果为空时不会返回结果,但是SQLite会返回一个为空的结果集。如果直接用PHP中求数组元素数目的count()
函数。会得到结果: 1
解决方案:
$sql = <<<EOF
SELECT * from usertb where user = '不存在';
EOF;
$ret = $db->query($sql);
$obj = array();
while($row = $ret->fetchArray(SQLITE3_ASSOC)){
array_push($obj,$row);
}
echo "直接判断:".count($ret)."<br>";
echo "判断push后的结果:".count($obj)."<br>";
运行结果
123.png