我该如何检查从sql查询返回的值是否为空?我尝试使用if(empty($ var)),但那也没用。我的继承人代码如何检查从SQL/PHP查询返回的值是否为空?
PHP代码:
while($row = mysql_fetch_array($Result))
{
if(count($row) == 0)
{
....
}
}
我将如何检查是否$行是空的?
我该如何检查从sql查询返回的值是否为空?我尝试使用if(empty($ var)),但那也没用。我的继承人代码如何检查从SQL/PHP查询返回的值是否为空?
PHP代码:
while($row = mysql_fetch_array($Result))
{
if(count($row) == 0)
{
....
}
}
我将如何检查是否$行是空的?
这是正确的方法,您可以通过查找返回结果中的行数来检查结果是否为空。 sql中有一个函数来做这个mysql_num_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
}
请注意,您应该使用===而不是==。 – Mgamerz
if (mysql_num_rows($Result) == 0) {
//error here
} else {
//loop here
}
给你一个错误,并与结果的工作场所的地方,如果他们不空。
最简单的方法是使用mysql_num_rows()。
$cnt = mysql_num_rows($Result);
if (0===$cnt) {
echo 'no records';
}
else {
while(false!=($row=mysql_fetch_array($Result))) {
// ...
}
}
但请记住,此函数返回从MySQL服务器传输到客户端的记录数。这不一定是总记录数。只要你使用mysql_query()没关系。但是,如果你有例如你可能想要使用大的结果集mysql_unbuffered_query(),然后你不能依赖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))) ;
}
这种做法你没有一个额外的变量,但一些重复代码($的X =取...行)。
...做出您的选择;-)
您的意思是什么“空”? – VolkerK
请注意,mysql扩展已过时,正在弃用。相反,新代码应该使用mysqli或PDO,它们都具有重要的优点,例如预准备语句。 – outis