MySQLi - Fetch-Array und Vorbereitete Anweisung
Ich möchte zur Anzeige von Zeilen aus der Tabelle, aber es funktioniert nicht, es funktioniert nicht, echo nichts.
$query = "SELECT * FROM table ORDER BY date DESC LIMIT ?, 10";
$stmt = $mysqli->stmt_init();
if ($stmt->prepare($query)) {
$stmt->bind_param("i", $row_start);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
$stmt->close();
}
while($row = mysqli_fetch_array( $result )) {
echo $row['title'];
}
Ich habe den code für die alte mysql-ext, und es funktioniert. Versucht man dasselbe Ergebnis auch mit mysqli.
- Lächerlich,
fetch_array()
funktioniert nicht mit vorbereiteten Anweisungen sind. Verwenden Siebind_result()
, das macht den ganzen Prozess viel clunkier. Dies ist einer der wichtigsten Gründe, warum ich die Nutzung über PDO MySQLi, Wann immer möglich. - Ich dachte, MySQLi war eine verbesserte version des ursprünglichen ext... wusste nicht, es ist eine solche Einschränkung. Ich glaube, ich habe zu bewegen, um PDO.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen Sie unter diesem link:-
Mysqli ist Abstraktion, Holen arrays von prepared statements
Den call_user_func_array (...) - Funktion ruft einfach die bindParam oder bind_result Methoden auf die $query-Objekt mit dem gegebenen array, als wenn Sie zur Verfügung gestellt hatte, jedes element des Arrays als eine Methode argument.
Möchten Sie vielleicht zu überprüfen, die SQL-Anweisung, die Sie haben das problem, mit dem code unten. Ich habe es ein bisschen umgeschrieben, um es vollständig prüfbar, da Sie den ursprünglichen code hängt von der Anweisung-Klasse in Ihrem Abstraktions-Schicht.