Wie führe ich beim Erlernen einer PHP-Datenbank mehrere SQL-Befehle gleichzeitig aus?

WBOY
Freigeben: 2023-04-10 18:46:01
Original
4562 Leute haben es durchsucht

Im vorherigen Artikel haben wir Ihnen „Allgemeine Funktionen zum Erhalten von SQL-Abfrageergebnissen in PHP (detaillierte Beispiele)“ vorgestellt, in denen wir einige häufig verwendete Funktionen beim Abfragen von Datenbanken in PHP ausführlich vorgestellt haben. In diesem Artikel werfen wir einen Blick darauf wie man mehrere SQL-Befehle gleichzeitig ausführt. Hoffe, es hilft allen!

Wie führe ich beim Erlernen einer PHP-Datenbank mehrere SQL-Befehle gleichzeitig aus?

Im vorherigen Artikel haben wir Ihnen die allgemeinen Funktionen zum Abrufen von SQL-Abfrageergebnissen vorgestellt. Beim Ausführen der Funktion mysqli_query() kann jeweils nur ein SQL-Befehl ausgeführt werden Eine Funktion in PHP, die es dem Code ermöglicht, mehrere SQL-Befehle gleichzeitig auszuführen, nämlich die Funktion mysqli_multi_query(). Als nächstes werfen wir einen Blick auf die Funktion mysqli_multi_query().

<strong><span style="font-size: 20px;">mysqli_multi_query()</span></strong> Funktion<strong><span style="font-size: 20px;">mysqli_multi_query()</span></strong> 函数

在我们前面介绍的 mysqli_query() 函数的时候,运行该函数每次只能执行一条SQL命令,但是想要执行多条SQL命令的时候,mysqli_query() 函数就不能满足我们了,这时候我们就需要通过mysqli_multi_query() 函数来实现一次执行多条 SQL 命令。

mysqli_multi_query() 函数的语法格式如下:

mysqli::multi_query(string $query)
Nach dem Login kopieren

这是面向对象的写法,下面是面向过程的写法:

mysqli_multi_query(mysqli $link, string $query)
Nach dem Login kopieren

其中需要注意的是:

  • $query 表示为要查询的 SQL 语句

  • $link 表示为使用 mysqli_connect() 函数返回的链接标识

  • $query 表示参数,其中可以包含多条 SQL 命令,每条 SQL 命令之间使用分号;分隔。如果第一条 SQL 命令在执行时没有出错,那么这个函数就会返回 TRUE,否则将返回 FALSE。

接下来我们通过示例来看一下mysqli_multi_query() 函数的使用,来执行多条SQL命令,示例如下:

<?php
    $host     = &#39;localhost&#39;;
    $username = &#39;root&#39;;
    $password = &#39;root&#39;;
    $dbname   = &#39;test&#39;;
    $mysql    = new Mysqli($host, $username, $password, $dbname);
    if($mysql -> connect_errno){
        die(&#39;数据库连接失败:&#39;.$mysql->connect_errno);
    }else{
        $sql    = &#39;select id,name from user;&#39;;  // SQL 语句
        $sql    .= &#39;select sex,age from user&#39;;  // SQL 语句
        if($mysql -> multi_query($sql)){
            do{
                if ($result = $mysql -> store_result()) {
                    while ($row = $result->fetch_row()) {
                        print_r($row);
                    }
                    $result->free();
                }
                if ($mysql -> more_results()) {
                    echo &#39;<hr>&#39;;
                }else{
                    break;
                }
            } while ($mysql -> next_result());
        }
        $mysql -> close();
    }
?>
Nach dem Login kopieren

输出结果:

Wie führe ich beim Erlernen einer PHP-Datenbank mehrere SQL-Befehle gleichzeitig aus?

上述结果通过mysqli_multi_query() 函数完成了执行多条SQL命令,

其中我们需要注意的是:

因为 mysqli_multi_query() 函数能够连接执行一个或多个查询,而每条 SQL 命令都可能返回一个结果,在必要时需要获取每一个结果集。所以对该函数返回结果的处理也有了一些变化,第一条查询命令的结果要用 mysqli_use_result() mysqli_store_result() 函数来读取。

也可以使用 mysqli_store_result() 函数将全部结果立刻取回到客户端,而且这么做的效率更高。另外,可以使用mysqli_more_results() 函数检查是否还有其他结果集。

如果想对下一个结果集进行处理,可以使用 mysqli_next_result() 函数获取下一个结果集,有下一个结果集时该函数返回 TRUE,没有时返回 FALSE,在有下一个结果集的情况下,也需要使用 mysqli_use_result()mysqli_store_result()

In der Funktion mysqli_query() , die wir zuvor eingeführt haben, können Sie beim Ausführen dieser Funktion jeweils nur einen SQL-Befehl ausführen, möchten dies aber tun Mehrere ausführen Wenn wir mehrere SQL-Befehle ausführen, kann uns die Funktion mysqli_query() nicht zufriedenstellen. Zu diesem Zeitpunkt müssen wir die Funktion mysqli_multi_query() verwenden, um mehrere SQL-Befehle gleichzeitig auszuführen.

mysqli_multi_query() Das Syntaxformat der Funktion lautet wie folgt:

<?php
    $host     = &#39;localhost&#39;;
    $username = &#39;root&#39;;
    $password = &#39;root&#39;;
    $dbname   = &#39;test&#39;;
    $link     = @mysqli_connect($host, $username, $password, $dbname);
    if($link){
        $sql    = &#39;select id,name from user;&#39;;  // SQL 语句
        $sql    .= &#39;select sex,age from user&#39;;  // SQL 语句
        $result = mysqli_multi_query($link, $sql);        // 执行 SQL 语句,并返回结果
        do{
            if($data = mysqli_use_result($link)){
                while ($row = mysqli_fetch_row($data)) {
                    print_r($row);
                }
                mysqli_free_result($data);
            }
            if(mysqli_more_results($link)){
                echo &#39;<hr>&#39;;
            }else{
                break;
            }
        } while (mysqli_next_result($link));
        mysqli_close($link);
    }else{
        echo &#39;数据库连接失败!&#39;;
    }
?>
Nach dem Login kopieren
Dies ist objektorientiertes Schreiben, und das Folgende ist prozessorientiertes Schreiben:

rrreeeWas beachtet werden muss, ist :

  • 🎜$query stellt die abzufragende SQL-Anweisung dar🎜
  • 🎜 $link stellt die von der mysqli_connect()-Funktion zurückgegebene Link-ID dar. 🎜
  • 🎜$query stellt Parameter dar, die mehrere SQL-Befehle enthalten können. Verwenden Sie zwischen jedem ein Semikolon SQL-Befehl ; getrennt. Diese Funktion gibt TRUE zurück, wenn der erste SQL-Befehl fehlerfrei ausgeführt wird, andernfalls gibt sie FALSE zurück. 🎜
🎜Als nächstes schauen wir uns die Verwendung der Funktion mysqli_multi_query() anhand eines Beispiels zum Ausführen mehrerer SQL-Befehle an. Das Beispiel sieht wie folgt aus: 🎜rrreee🎜Ausgabeergebnis: 🎜🎜🎜Wie führe ich beim Erlernen einer PHP-Datenbank mehrere SQL-Befehle gleichzeitig aus?🎜🎜Die obigen Ergebnisse werden durch vervollständigt Die Funktion mysqli_multi_query() führt mehrere SQL-Befehle aus. 🎜🎜Worauf wir achten müssen, ist: 🎜🎜Weil die Funktion mysqli_multi_query() eine oder mehrere Abfragen ausführen kann Nacheinander und jeder SQL-Befehl Jeder kann ein Ergebnis zurückgeben, und jeder Ergebnissatz muss bei Bedarf abgerufen werden. Daher gab es einige Änderungen bei der Verarbeitung der von dieser Funktion zurückgegebenen Ergebnisse. Das Ergebnis des ersten Abfragebefehls muss mit mysqli_use_result() oder mysqli_store_result() gelesen werden > Funktion. 🎜🎜Sie können auch die Funktion mysqli_store_result() verwenden, um alle Ergebnisse sofort an den Client zurückzusenden, was effizienter ist. Darüber hinaus können Sie die Funktion mysqli_more_results() verwenden, um zu prüfen, ob zusätzliche Ergebnismengen vorhanden sind. 🎜🎜Wenn Sie den nächsten Ergebnissatz verarbeiten möchten, können Sie die Funktion mysqli_next_result() verwenden, um den nächsten Ergebnissatz abzurufen. Die Funktion gibt TRUE zurück, wenn es einen nächsten Ergebnissatz gibt, und gibt FALSE zurück, wenn Dies ist nicht der Fall. Im Falle einer Ergebnismenge müssen Sie außerdem die Funktion mysqli_use_result() oder mysqli_store_result() verwenden, um den Inhalt der Ergebnismenge zu lesen. 🎜🎜Das Obige ist eine objektorientierte Methode. Schauen wir uns als nächstes die prozessorientierte Methode an. Das Beispiel ist wie folgt: 🎜rrreee🎜Das Ausgabeergebnis ist das gleiche wie das obige Ergebnis, daher können wir mysqli_multi_query verwenden ()-Funktion, um mehrere SQL-Befehle gleichzeitig auszuführen. 🎜🎜Bei Interesse können Sie auf „🎜PHP-Video-Tutorial🎜“ klicken, um mehr über PHP-Kenntnisse zu erfahren. 🎜

Das obige ist der detaillierte Inhalt vonWie führe ich beim Erlernen einer PHP-Datenbank mehrere SQL-Befehle gleichzeitig aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!