Ich versuche, nicht frustriert zu werden, aber ich habe kürzlich erfahren, dass mysql_*
in PHP abgewertet wird. Ich habe beschlossen, dass ich lernen würde, PDO zu verwenden. Ich habe es mir heute Nachmittag angeschaut, und es war einfach, mich mit der Datenbank zu verbinden, aber dann wollte ich eine Zeile damit holen und die Zeile als ein Array speichern, das durch die Spaltennamen indiziert wurde (genau wie die Funktion) mysql_fetch_array
tat). Ich kann es nicht herausfinden, um mein Leben zu retten. Ich poste meinen Code, um klarzustellen, und ich bin mir sicher, dass es etwas einfaches ist (alle Programmierfehler sind immer einfach), aber ich mache definitiv etwas falsch.
Danke für die Hilfe.
Alex
fetchAll
macht das, was es sagt: Es ruft alle Ergebnisse für eine Abfrage ab. Da es viele Ergebnisse abruft, erhalten Sie ein indiziertes Array.
fetch
führt genau das aus, was Sie suchen, wenn Sie nur eine Zeile haben wollen: Es ruft ein Ergebnis für eine Abfrage ab. Wenn Sie mysql_*
code in PDO konvertieren, ist der schnellste Weg, diese Methode anstelle von mysql_fetch_assoc
zu verwenden.
Wenn Sie immer noch mit fetchAll
arbeiten: Ihr Code würde wahrscheinlich einfach so aussehen:
Wie ich schon sagte, wenn Sie nur Legacy-Code in PDO-Code konvertieren, ist es möglicherweise einfacher, alle Abfragen in vorbereitete Anweisungen zu ändern und das Folgende zu ersetzen:
mysql_fetch_assoc($result)
$stmt->fetch(PDO::FETCH_ASSOC)
mysql_num_rows($result)