Php PDO fetch返回空的第一行
我试图将PDO查询中的数据存储到一个数组中,如下所示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' => $
$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是的,我不会担心。只是在等计时器。