MySQLi_stmt mehrdimensionales array

Hey Leute,

ich steh gerade voll aufm Schlauch…

            while ($this->mysqli_stmt->fetch())
            {
                $result = array();
                $i = 0;
                $result[$i][0] = $id;
                $result[$i][1] = $userID;
                $result[$i][2] = $author;
                $result[$i][3] = $date;
                $result[$i][4] = $text;
                $i++;
            }

Dies ist mein fetch teil, der eben die Variablen die mittels bind_results gebindet wurden, in ein array packen sollen und dieses wird dann zurueckgegeben.
Habt ihr da eine besser idee wie man das loesen koennte?

Etwas schicker fände ich es so:

[php]$result = array();

while ($this->mysqli_stmt->fetch())
{
$result = array(
‚id‘ => $id,
‚userID‘ => $userID,
‚author‘ => $author,
‚date‘ => $date,
‚text‘ => $text
);
}[/php]

Das ist natürlich immer noch ein sehr umständliches Herumgeschiebe von Variablen. Bei PDO-Statements gibt es dafür zum Beispiel eine fetchAll-Methode. Wäre vielleicht ganz interessant, sowas in allgemeiner Form auch bei MySQLi_STMT einzubauen. (Ich wette, auf irgendeiner Dokuseite steht in den Comments bereits eine entsprechende Funktion.)

Oder schau dir überhaupt mal PDO an.

Edit: Vielleicht ist es auch möglich, ein http://php.net/manual/en/class.mysqli-result.php von einem MySQLi_STMT zu erhalten, aber ich glaube, die einzige passend aussehende Methode bezieht sich nur auf Metadaten.

Vielen Dank.
Ich schau mir mal PDO an.

Das es sowas nicht direkt bei MySQLi gibt ist wirklich nervig.
Bei normalem MySQL gibts ein fetch_array()…
sowas fehlt echt.

Ja (jedenfalls bei Prepared Statements). Ich glaube, das ist auch ein Grund, weshalb MySQLi so wenig Verwendung findet, obwohl es eigentlich die alte MySQL-Erweiterung ersetzt haben sollte. Aber ich denke, es hat keinen Zweck, zu versuchen, MySQLi zu erweitern (habe das gerade überlegt), denn das Ergebnis wäre im Grunde nichts weiter als ein Nachbau einer bereits bestehenden Erweiterung/Datenbankklasse (PDO, Zend_Db usw.).