我的意思是,例如,如果我在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
的方法吗?
答案 0 :(得分:2)
如果mysqli_fetch_array
没有返回任何内容,则返回值为NULL
行while($row = mysqli_fetch_array
应该返回记录集中的 next 可用记录,因此如果查询没有给出任何匹配结果,那么行echo $row['something']
会根本没有被执行。
如果您要提取多个字段,请说field1
,field2
并假设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
}