Um mehrere SQL-Befehle gleichzeitig auszuführen, verwenden Sie die Methode multi_query() im mysqli-Objekt.
Spezifische Methoden:
Schreiben Sie mehrere SQL-Befehle in die gleiche Zeichenfolge und übergeben Sie sie als Parameter an die multi_query()-Methode. Verwenden Sie Semikolons (;), um mehrere SQL-Befehle zu trennen. Wenn bei der Ausführung des ersten Befehls keine Fehler auftreten, gibt diese Methode TRUE zurück, andernfalls FALSE.
Da die Methode multi_query() eine Verbindung herstellen kann, um eine oder mehrere Abfragen auszuführen, und jeder SQL-Befehl ein Ergebnis zurückgeben kann, muss bei Bedarf jede Ergebnismenge abgerufen werden. Daher gibt es einige Änderungen bei der Verarbeitung der von dieser Methode zurückgegebenen Ergebnisse. Das Ergebnis des ersten Abfragebefehls muss mit der Methode use_result() oder store_result() im mysqli-Objekt gelesen werden Wenn Sie die Methode „store_result()“ sofort verwenden, ist dieser Ansatz effizienter. Darüber hinaus können Sie mit der Methode more_results() im mysqli-Objekt prüfen, ob weitere Ergebnismengen vorhanden sind.
Wenn Sie den nächsten Ergebnissatz verarbeiten möchten, sollten Sie die Methode next_results() im MySQLi-Objekt aufrufen, um den nächsten Ergebnissatz zu erhalten. Diese Methode gibt TRUE oder FALSE zurück.
Wenn es einen nächsten Ergebnissatz gibt, müssen Sie ihn auch mit der Methode use_result() oder store_result() lesen.
Der Code zum Ausführen mehrerer SQL-Befehle lautet wie folgt:
$mysqli=new mysqli("localhost","mysql_user","mysql_pwd","my_db_name ");
/* Verbindung prüfen */
if($mysqli->mysql_connect_errno()){
printf ("Verbindung fehlgeschlagen: %s
",mysql_connect_error());
exit( );
}
$query="SET NAMES GB2312;";
$query.="SELECT CURERENT_USER();" $query.="SELECT name,phone FROM contactinfo LIMIT 2" ;
/* Mehrfachabfrage ausführen */
if($mysqli->multi_query($query)){
do{
if($result=$ mysqli-& gt; store_result () ) {
// $ mysqli- & gt; store_result () Holen Sie sich die erste Ergebnismenge
While ($ row = $ result- &ROW ()) {
FOREACH ($row as $data){
> if($mysqli->more_results()){
";
}
}while($mysqli-> ;next_result());
}
/* Verbindung schließen */
$mysqli->close();
?>
Hinweis:
Im obigen Beispiel wird die Methode multi_query() im mysqli-Objekt verwendet, um drei SQL-Befehle gleichzeitig auszuführen, mehrere Ergebnismengen abzurufen und Daten daraus zu durchlaufen. Tritt bei der Befehlsverarbeitung ein Fehler auf, kommt es zu Problemen mit den Methoden multi_query() und next_result().
Der Rückgabewert der Methode multi_query() sowie die Attribute errno, error, info usw. von mysqli beziehen sich nur auf den ersten SQL-Befehl. Es ist nicht möglich festzustellen, ob dabei ein Fehler aufgetreten ist die Ausführung des zweiten und weiterer Befehle. Wenn der Rückgabewert der Methode multi_query() TRUE ist, bedeutet dies daher nicht, dass bei der Ausführung nachfolgender Befehle keine Fehler vorliegen.
Das Obige stellt die multi_query()-Methode im MySQLi-Objekt vor, einschließlich des relevanten Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.