什么是空sql结果的官方值(来自循环)

时间:2012-08-30 01:38:16

标签: php

我的意思是,例如,如果我在SQL表上搜索某些内容,并且它返回0 /无,则是 null 为空或者是导致空“”

我正在回到php并试图像这样循环一个数据库:

伪代码:

while($row = mysqli_fetch_array($var here that has the query to the db and connection)){
      echo $row[//something pulled from table to be read back]
}

但是,让我们说搜索查询没有返回任何结果,或$row不等于任何结果,因为无论出于何种原因,在db中搜索的值不存在,

如何检查行的空白?

如果数据库中不存在搜索到的项目,那么$rows值究竟是什么? null / empty /或空字符串或其他什么?

取决于的值,我是否要测试 [isset /!isset] [空/!空] ?或者是 测试空$row来做(伪)$x =mysqli_num_rows(var here) / if ($x == 0 ) //do something的方法吗?

4 个答案:

答案 0 :(得分:2)

如果mysqli_fetch_array没有返回任何内容,则返回值为NULL

while($row = mysqli_fetch_array应该返回记录集中的 next 可用记录,因此如果查询没有给出任何匹配结果,那么行echo $row['something']会根本没有被执行。

如果您要提取多个字段,请说field1field2并假设field2没有值,那么该字段的返回值是默认值该字段将在MySQL(或您使用的任何DB)。但需要注意的是,$row仍然会将两个键正确定义为$row['field1']$row['field2']

如果您想检查$row['field2']是否有任何价值,可以使用empty($row['field2'])进行检查。

"", 0, NULL, FALSE, array()都被视为empty(),因此您应该能够使用此函数安全地确定该字段中是否包含任何有效值。但是,如果说0可能是有效值(例如,您正在查询no_of_days,上个月缺少一个人并且其中一些人已完全出席),您将需要明确检查该字段中的值并且不能依赖于empty()。

答案 1 :(得分:2)

您可以使用mysql_num_rows检查是否有结果。如果该行中存在项目,则该行应显示一个或多个,或者TRUE,具体取决于您搜索的项目,如果执行查询时数据库中不存在,则表示mysql_now_rows将显示0 / NULL。

你可以这样做

$query = mysql_query("YOUR QUERY HERE");
$numrow = mysql_num_rows($query);

if ($numrow == 0)
{
ECHO "No result found.";
}

答案 2 :(得分:0)

什么都没有,$ row == false 这是对while循环的正确测试!

答案 3 :(得分:0)

您可以使用mysqli_num_rows来获取查询找到的结果数量。

$query = 'SELECT `blah`';
$result = mysqli_query($query);
if(mysqli_num_rows($result) > 0) {
    // do stuff here if any rows are found
} else {
    // do stuff here if NO rows are found
}