为什么IF !empty()函数响应页面上的值而不是来自数据库的值?


Why is IF !empty() function responding to on-page values but not from database?

我想从数据库中返回一个字段值,如果它是ISSET()。当我用来自同一页面的set和not set值测试下面的代码时,它工作得很好。

if (!empty($row['YY'])) {
    echo $row['YY'];
} else {
    echo "N/A";} 

显示"YES"

$row['YY'] = 'YES';

显示一个"N/A"'

$row['YY'] = '';

然而,当使用相同的代码从数据库中获取查询时,设置的值被正确显示,但是一个空字段是什么都不显示。如何获得一个空字段来显示"N/A"的ELSE命令?

同样,我正在读取的列,没有被设置为NULL。(如果这是相关的。)我尝试了以下函数,也没有成功;

如果在$row['YY']中有一个空字符串,它将在! empty()检查时返回true。

重现上述问题:

$row  = array('YY' => ' ');
if ( ! empty($row['YY'])) {
   echo 1;
}

在屏幕上打印1

所以添加trim()函数来删除空白:

$row['YY'] = trim($row['YY']);