Ich versuche, Daten von PDO Abfrage in einem Array wie folgt zu speichern.PDO-Abruf gibt leere erste Zeile zurück
$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;
}
Es gibt zwei Probleme:
1), wenn die Tabelle leer ist, mit $stmt->fetch()
, ohne vorher zu überprüfen, ob $stmt->rowCount() > 0
ein leeres Array Element zurückgibt, dh [[]]
, wenn das, was ich brauche []
oder ein leeres Array ist .
2) daher habe ich eine if-Anweisung $stmt->rowCount() > 0
hinzugefügt, so dass eine leere Tabelle []
zurückgibt, die funktionierte. Nun haben jedoch nicht leere Tabellen einen ersten Wert, der leer ist, d. H. [[],[1,2],[3,4]...]
, was den späteren Teil meines Codes durcheinander bringt.
Wie stelle ich sicher, dass der Ausgang entweder []
oder [[1,2],[3,4]...]
ist?
Vielen Dank! Ich wusste, dass es ein dummer Fehler wie dieser sein musste. – revvy
@revvy kein Problem, ich bin froh, dass ich Ihnen helfen konnte. –
akzeptieren Sie die Ans und Upvote, wenn Sie können @ revvy – Exprator