In PHP ist die MySQLI -Erweiterung ein leistungsstarkes Tool zum Verbinden und Manipulieren von MySQL -Datenbanken. Es bietet mehrere Möglichkeiten, den Ergebnissatz von SQL -Abfragen zu verarbeiten. Unter ihnen ist die MySQLI :: Use_Result -Funktion eine häufig verwendete Funktion, insbesondere für Szenarien geeignet, in denen eine große Menge an Daten erforderlich ist oder dass Sie die Ergebniszeile für Zeile lesen möchten. In diesem Artikel wird detailliert erläutert, wie die Funktion MySQLI :: Use_Result für die grundlegende Ergebnis -Set -Verarbeitung verwendet wird und ein Beispiel zur Demonstration seiner praktischen Anwendung bereitgestellt wird.
MySQLI :: Use_Result ist eine Methode der MySQLI -Klasse, mit der ein Ergebnis aus einer ausgeführten SQL -Abfrage eingestellt wird. Wenn Sie diese Methode nennen, wird nicht alle Ergebnisse gleichzeitig in den Speicher geladen, sondern gibt einen Zeiger auf das Ergebnissatz zurück, durch das Daten nach Zeile verarbeitet werden können.
Diese Methode wird normalerweise mit ausgewählten Abfragen verwendet. Wenn die Abfrage eine große Datenmenge zurückgibt, kann Use_Result einen übermäßigen Verbrauch von Speicher vermeiden und damit die Leistung verbessern. Es unterscheidet sich von der MySQLI :: Store_Result -Methode, die alle Abfrageergebnisse gleichzeitig in Speicher lädt.
Erstellen Sie eine Datenbankverbindung <br> Zunächst müssen Sie über die Funktion mySQLi_Connect eine Verbindung zur MySQL -Datenbank herstellen.
SQL Query <br> ausführen Verwenden Sie die Funktion MySQLI_Query , um SQL -Abfragen auszuführen, um sicherzustellen, dass die Abfrageanweisung vom Typ ausgewählt wird.
Rufen Sie die USE_RESULT -Methode auf <br> Erhalten Sie das Abfrageergebnis, indem Sie die MySQLI :: Use_Result -Methode aufrufen.
Verarbeitungsergebnissatz <br> Verwenden Sie Funktionen wie MySQLI_Fetch_row oder MySQLI_Fetch_assoc , um die Abfrageergebniszeile für Zeile zu erhalten, bis keine Daten mehr vorhanden sind.
Schließen Sie die Verbindung <br> Denken Sie nach Abschluss der Abfrage- und Ergebnisverarbeitung daran, die Datenbankverbindung zu schließen.
Hier ist ein einfaches Beispiel für die Verwendung der MySQLI :: Use_Result -Methode, um einen Ergebnissatz zu verarbeiten:
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Schritt 1: Erstellen Sie eine Datenbankverbindung</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">mysqli</span></span><span>(</span><span><span class="hljs-string">"localhost"</span></span><span>, </span><span><span class="hljs-string">"username"</span></span><span>, </span><span><span class="hljs-string">"password"</span></span><span>, </span><span><span class="hljs-string">"database"</span></span><span>);
</span><span><span class="hljs-comment">// Überprüfen Sie, ob die Verbindung erfolgreich ist</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Verbindung ist fehlgeschlagen: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->connect_error);
}
</span><span><span class="hljs-comment">// Schritt 2: implementierenSQLAbfrage</span></span><span>
</span><span><span class="hljs-variable">$sql</span></span><span> = </span><span><span class="hljs-string">"SELECT id, name, email FROM users"</span></span><span>;
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">query</span></span><span>(</span><span><span class="hljs-variable">$sql</span></span><span>);
</span><span><span class="hljs-comment">// 检查Abfrage是否成功</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span>) {
</span><span><span class="hljs-comment">// Schritt 3: verwendenuse_resultHolen Sie sich das Ergebnissatz</span></span><span>
</span><span><span class="hljs-variable">$res</span></span><span> = </span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">use_result</span></span><span>();
</span><span><span class="hljs-comment">// Schritt 4: Verarbeiten Sie die Folge -Set -Zeile für Zeile</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$row</span></span><span> = </span><span><span class="hljs-variable">$res</span></span><span>-></span><span><span class="hljs-title function_ invoke__">fetch_assoc</span></span><span>()) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ID: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'id'</span></span><span>] . </span><span><span class="hljs-string">" - Name: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'name'</span></span><span>] . </span><span><span class="hljs-string">" - Email: "</span></span><span> . </span><span><span class="hljs-variable">$row</span></span><span>[</span><span><span class="hljs-string">'email'</span></span><span>] . </span><span><span class="hljs-string">"<br>"</span></span><span>;
}
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Abfrage失败: "</span></span><span> . </span><span><span class="hljs-variable">$mysqli</span></span><span>->error;
}
</span><span><span class="hljs-comment">// Schritt 5: Schließen Sie die Datenbankverbindung</span></span><span>
</span><span><span class="hljs-variable">$mysqli</span></span><span>-></span><span><span class="hljs-title function_ invoke__">close</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Erstellen Sie eine Datenbankverbindung:
Wir stellen zunächst eine Datenbankverbindung über neue MySQLI her und geben den Namen des Datenbank -Hosts, den Benutzernamen, den Kennwort und den Datenbanknamen übergeben. Wenn die Verbindung fehlschlägt, wird die Fehlermeldung über $ MySQLI-> Connect_error zurückgegeben und das Skript wird beendet.
Führen Sie die Abfrage aus:
Verwenden Sie die $ mySQLI-> Abfragemethode , um die Abfrageanweisung auszuführen, und nachdem die Abfrage erfolgreich ist, wird ein Ergebnisobjekt zurückgegeben.
Holen Sie sich das Ergebnissatz:
Rufen Sie $ MySQLI-> use_result () auf, um einen Zeiger auf eine Ergebnismenge zu erhalten, die auf jede Datenreihe in der Abfrage hinweist.
LINE BY LINE -Verarbeitungsergebnisse:
Wir verwenden die Fetch_assoc -Methode, um die Datenzeile nach Zeile zu extrahieren, die ein assoziatives Array zurückgibt, wobei der Schlüssel der Spaltenname ist und der Wert der Wert dieser Spalte ist.
Schließen Sie die Verbindung:
Nachdem die Daten verarbeitet wurden, verwenden wir $ MySQLi-> close (), um die Datenbankverbindung zu schließen.
Speichersparen: Da Use_Result nicht alle Daten gleichzeitig in den Speicher lädt, ist es für die Behandlung großer Datenabfragen geeignet.
Verbesserung der Leistung: Für Big Data -Abfragen ist die Verarbeitungsergebniszeile für die Zeile in der Regel effizienter als alle Daten gleichzeitig zu lesen.
Mehrere Abfragen können nicht gleichzeitig ausgeführt werden: Im Gegensatz zur Store_Result -Methode kann bei Verwendung von Use_Result nur der Ergebnissatz der aktuellen Abfrage verarbeitet werden, und mehrere Abfragen können nicht ausgeführt werden.
Der Zufallszugriff wird nicht unterstützt: Die mit Use_Result zurückgegebene Ergebnismenge kann nur durch Zeile verarbeitet werden und kann nicht in die nach Belieben festgelegte Position umgeleitet werden.
MySQLI :: Use_Result ist ein sehr nützliches Instrument bei der Verarbeitung großer Datensätze und ist besonders für Szenarien geeignet, in denen Daten nach Linie verarbeitet werden und strenge Anforderungen an die Speicherverwendung haben. Das richtige Verständnis, wie man es richtig einsetzt, kann Entwicklern helfen, bessere Auswahlmöglichkeiten in Bezug auf Leistung und Speicherverwaltung zu treffen. Wenn Sie sich mit großen Datenmengen befassen oder für den Speicherausdruck der Abfrageergebnisse empfindlich sind, ist Use_Result ein lohnender Ansatz.
Verwandte Tags:
mysqli