MySQL中的PHP数组不是空的,但有一个空条目-如何避免


PHP Array from MySQL is not empty but has an empty entry - how to avoid

我正在尝试检查数据库中是否存在条目(一个或多个)。然而,即使我知道没有条目,我也会得到第一个条目为零的数组。因此,它不是空的,我没有得到我需要的。

这是我的代码:

    <?php
    $query = mysql_query("SELECT * FROM table WHERE column = $yfbid_number AND timestamp BETWEEN (NOW()- Interval 1 DAY) AND NOW()");
    $array[] = array();
    while ($row = mysql_fetch_assoc($query)){
        $array[] = $row['column'];
    }
    ?>

当对一个应该为空的数组执行print_r时,我得到:([0]=>array()),因此count是1而不是零,这会打乱我的代码。有什么想法可以在这种情况下得到一个真正的空数组吗?我宁愿不删除这个条目,但首先要避免它,因为在大多数用例中,我会得到一个空数组或一个只有一个条目的数组(一个真正的条目),在这种情况下,我想很容易区分两者。(就像现在一样,两者都有1个条目,这对我们的海豚来说非常糟糕)。谢谢

更改:

$array[] = array();

$array = array();

在您的版本中,如果$array还不存在,PHP将首先创建一个数组,然后向其附加一个空数组。因此,您最终得到一个1元素数组,其唯一成员是空数组。

$array[] = array();应为$array = array()。现在,您正在将一个数组元素附加到已初始化的数组中。打开通知,你会收到关于一个未定义变量的投诉(可能)。

我建议您先做一个SELECT COUNT(*),以确定您将获得多少条目。然后你知道这个结果将是一个有用的答案,并且可以根据你的结果进行或不进行后续的查询。

相关文章: