Php PDO fetch返回空的第一行

Php PDO fetch返回空的第一行,php,sql,pdo,Php,Sql,Pdo,我试图将PDO查询中的数据存储到一个数组中,如下所示 $array[] = array(); $query = "SELECT m.fac_id, m.tnc_id FROM `CCF` m INNER JOIN `CCF-1` f ON f.fac_id = m.fac_id WHERE f.form_id = :id"; $stmt = $con->prepare($query); $stmt->execute(array('id' => $

我试图将PDO查询中的数据存储到一个数组中,如下所示

$array[] = array();
$query = "SELECT m.fac_id, m.tnc_id FROM `CCF` m
        INNER JOIN `CCF-1` f ON f.fac_id = m.fac_id
        WHERE f.form_id = :id";
$stmt = $con->prepare($query);
$stmt->execute(array('id' => $ccf_id));

if ($stmt->rowCount() > 0) {
    while ($obj = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $array[] = [$obj['tnc_id'], $obj['fac_id']];
    }
    return $array;
} else {
    return null;
}
有两个问题:

1) 如果表是空的,当我需要的是
[]
或空数组时,使用
$stmt->fetch()
而不首先检查
$stmt->rowCount()>0
是否返回空数组元素,即
[[]]

2) 因此,我添加了一个if语句
$stmt->rowCount()>0
,这样一个空表将返回
[]
,这很有效。但是,现在非空表的第一个值将是空的,即
[[],[1,2],[3,4]…]
,这会弄乱代码的后面部分

如何确保输出是
[]
[[1,2],[3,4]…]

更改

$array[] = array();

[]
后面的
$array
表示
$array
将是一个数组,并且存在的第一个索引(通过
[]
创建)将是一个
数组()

$array[] = array();


[]
后面的
$array
表示
$array
将是一个数组,并且存在的第一个索引(通过
[]
创建)将是一个
数组()

谢谢!我知道这一定是一个愚蠢的错误。@revvy没问题,我很高兴能帮助你。@Exprator在你接受答案之前(问完问题后)有15分钟的冷静时间,所以OP不得不再等几分钟。我只是说他会这么做:)@Exprator是的,我不会担心。只是在等计时器。谢谢!我知道这一定是一个愚蠢的错误。@revvy没问题,我很高兴能帮助你。@Exprator在你接受答案之前(问完问题后)有15分钟的冷静时间,所以OP不得不再等几分钟。我只是说他会这么做:)@Exprator是的,我不会担心。只是在等计时器。