如何检查SQL/PHP查询返回的值是否为空?
如何检查sql查询返回的值是否为空?我尝试使用if(empty($var)),但也不起作用。这是我的密码 PHP代码:如何检查SQL/PHP查询返回的值是否为空?,php,mysql,Php,Mysql,如何检查sql查询返回的值是否为空?我尝试使用if(empty($var)),但也不起作用。这是我的密码 PHP代码: while($row = mysql_fetch_array($Result)) { if(count($row) == 0) { .... } } 如何检查$row是否为空?这是正确的方法,您可以通过查找返回结果
while($row = mysql_fetch_array($Result))
{
if(count($row) == 0)
{
....
}
}
如何检查$row是否为空?这是正确的方法,您可以通过查找返回结果中的行数来检查结果是否为空。sql中有一个函数可以执行此操作
mysql\u num\u rows
。以下是使用它的方法:
if (mysql_num_rows($Result) == 0) {
//results are empty, do something here
} else {
while($admin_row = mysql_fetch_array($Result)) {
//processing when you have some data
}
如果结果不是空的,则为您提供错误的位置和处理结果的位置。最简单的方法是使用
但请记住,此函数返回到目前为止从MySQL服务器传输到客户端的记录数。这不一定是记录总数。只要你还在用,那没关系。但是,如果您有大型的结果集,您可能想要使用,那么您就不能依赖mysql_num_rows()(出于您的目的),因为在调用mysql_fetch_xyz()之前没有传输任何记录
但是你可以用类似
$cnt = 0;
while( false!=($row=mysql_fetch_array($Result)) ) {
$cnt += 1;
// ...
}
if ( 0===$cnt ) {
echo 'no records';
}
$row = mysql_fetch_array($Result);
if ( !$row ) {
echo 'no records';
}
else {
do {
// ...
} while( false!=($row=mysql_fetch_array($Result)) ) ;
}
现在您有了一个额外的变量作为计数器。您可能希望避免这种情况,而是使用类似
$cnt = 0;
while( false!=($row=mysql_fetch_array($Result)) ) {
$cnt += 1;
// ...
}
if ( 0===$cnt ) {
echo 'no records';
}
$row = mysql_fetch_array($Result);
if ( !$row ) {
echo 'no records';
}
else {
do {
// ...
} while( false!=($row=mysql_fetch_array($Result)) ) ;
}
使用这种方法,您没有额外的变量,但有一些代码重复($x=fetch…行)。... 做出选择;-) 你所说的“空”到底是什么意思?注意mysql扩展已经过时,并且正在被弃用。相反,新代码应该使用mysqli或PDO,两者都有重要的优点,比如预处理语句。