2011-01-31 56 views
0

这应该很简单....但它需要一段时间...以下是不工作的代码(它不显示任何内容或每次都显示空白状态消息)。 $显示图像是查询,我知道它运行良好。PHP MYQSLi如果字段为空,返回一个不同的值

// BLANK STATE TOGGLE 
$result = mysqli_fetch_array($showimage, MYSQLI_ASSOC); 
if($result == ''){ 
     echo '<p>Sorry- no image.</p>'; 
} 
else { 
    echo '<p>There is an image!</p>'; 
    } 
} 
+0

你怎么知道它运行良好?因为`$ result`可以是```````false`的唯一场景是查询失败 – 2011-01-31 03:43:42

+0

`$ showimage`是一个mysqli_result吗?你有错误报告启用和`display_errors`设置为“开”?此外,来自`mysqli_fetch_array`的返回值是一个数组或`NULL`。您可能应该针对其中的一个而不是空字符串进行测试。 – Phil 2011-01-31 03:44:26

+0

好的 - 他们如何检查空表值? – WillHerndon 2011-01-31 03:46:02

回答

0

如果你只是要检查行的结果存在从您的查询,为什么不你是这样简化它

// $db is your MySQLi connection object 

$query = 'SELECT COUNT(1) FROM `table` WHERE `something` = ?'; 
$stmt = $db->prepare($query); 
$stmt->bind_param('s', $something); 
$stmt->execute(); 

$stmt->bind_result($rowCount); 
$stmt->fetch(); 
$stmt->close(); 

if ($rowCount > 0) : ?> 
<p>There is an image!</p> 
<?php else : ?> 
<p>Sorry- no image.</p> 
<?php endif ?> 
-1

mysqli_fetch_array如果数据库中没有匹配,则返回null。所以你需要检查null。

您可能需要试试这个:

如果$showimage是您的查询..

//This should run fine 
//$link is ur connection 
$new_result = mysqli_query($link,$showimage); 


$result = mysqli_fetch_array($new_result, MYSQLI_ASSOC); 
if($result == null){ 
     echo '<p>Sorry- no image.</p>'; 
} 
else { 
    echo '<p>There is an image!</p>'; 
    } 
} 
相关问题