Heim Backend-Entwicklung PHP-Tutorial mysqli führt mehrere Anweisungen stapelweise und mehrere Anweisungen in einem Funktionsaufruf aus

mysqli führt mehrere Anweisungen stapelweise und mehrere Anweisungen in einem Funktionsaufruf aus

Feb 03, 2018 am 10:37 AM
mysqli 语句

In diesem Artikel erfahren Sie hauptsächlich, wie MySQL mehrere Anweisungen stapelweise und mit einem Funktionsaufruf ausführt. Ich hoffe, Sie können anhand der Beispiele in diesem Artikel Ihre eigenen Ideen entwickeln.

Unterstützt die Ausführung mehrerer Anweisungen, die in einer einzelnen Zeichenfolge angegeben sind. Um diese Funktion mit einer bestimmten Verbindung zu verwenden, müssen Sie beim Öffnen der Verbindung die Option CLIENT_MULTI_STATEMENTS im Flags-Parameter von mysql_real_connect() angeben. Es kann auch für eine bestehende Verbindung festgelegt werden, indem mysql_set_server_option(MYSQL_OPTION_MULTI_STATEMENTS_ON) aufgerufen wird.

Gemeinsame Routinen:

   
/* Connect to server with option CLIENT_MULTI_STATEMENTS */
mysql_real_connect(..., CLIENT_MULTI_STATEMENTS);
/* Now execute multiple queries */
mysql_query(mysql,"DROP TABLE IF EXISTS test_table;\
                   CREATE TABLE test_table(id INT);\
                   INSERT INTO test_table VALUES(10);\
                   UPDATE test_table SET id=20 WHERE id=10;\
                   SELECT * FROM test_table;\
                   DROP TABLE test_table");
do
{
  /* Process all results */
  ...
  printf("total affected rows: %lld", mysql_affected_rows(mysql));
  ...
  if (!(result= mysql_store_result(mysql)))
  {
     printf(stderr, "Got fatal error processing query\n");
     exit(1);
  }
  process_result_set(result); /* client function */
  mysql_free_result(result);
} while (!mysql_next_result(mysql));
Nach dem Login kopieren

Sehen Sie sich den Code genau an:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dlfcn.h>
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <termios.h>
#include <mysql/mysql.h>
void process_result_set(MYSQL       *mysql, MYSQL_RES *result)
{
        int i =0;
        unsigned int fieldnum;
        //从结果集,获取表头信息
        MYSQL_FIELD *fields = mysql_fetch_fields(result);
        fieldnum = mysql_field_count(mysql);
        for (i=0; i<fieldnum; i++)
        {
            printf("%s\t", fields[i].name);
        }
        printf("\n");
        //从结果集, 按照行获取信息信息
        MYSQL_ROW row = NULL;
        //从结果集中一行一行的获取数据
        while (  row = mysql_fetch_row(result))
        {
            fieldnum = mysql_field_count(mysql);
            //优化,我的行有多少列。。。。查找这样的api函数
            for (i=0; i<fieldnum; i++) //经过测试 发现 不是以0结尾的指针数组。。
            {
                printf("%s\t", row[i]);
            }
            printf("\n");
        }
}
int main()
{
    int         ret = 0, status = 0;
    MYSQL       *mysql;
    MYSQL_RES   *result;
    MYSQL_ROW   row;
    char        *query;
    mysql = mysql_init(NULL);
    mysql =mysql_real_connect(mysql, "localhost", "root", "123456", "mydb2", 0, NULL, CLIENT_MULTI_STATEMENTS);
    if (mysql == NULL)
    {
        ret = mysql_errno(mysql);
        printf("func mysql_real_connect() err\n");
        return ret;
    }
    else
    {
        printf(" ok......\n");
    }
    /* execute multiple statements */
status = mysql_query(mysql,
"DROP TABLE IF EXISTS test_table;\
CREATE TABLE test_table(id INT);\
INSERT INTO test_table VALUES(10);\
UPDATE test_table SET id=20 WHERE id=10;\
SELECT * FROM test_table;\
DROP TABLE test_table");
    if (status)
    {
        printf("Could not execute statement(s)");
        mysql_close(mysql);
        exit(0);
    }
    /* process each statement result */
    do {
            /* did current statement return data? */
            result = mysql_store_result(mysql);
            if (result)
            {
                /* yes; process rows and free the result set */
                process_result_set(mysql, result);
                mysql_free_result(result);
            }
            else /* no result set or error */
            {
                if (mysql_field_count(mysql) == 0)
                {
                    printf("%lld rows affected\n",
                    mysql_affected_rows(mysql));
                }
                else /* some error occurred */
                {
                    printf("Could not retrieve result set\n");
                    break;
                }
            }
        /* more results? -1 = no, >0 = error, 0 = yes (keep looping) */
        if ((status = mysql_next_result(mysql)) > 0)
                printf("Could not execute statement\n");
    } while (status == 0);
    mysql_close(mysql);
}
Nach dem Login kopieren

Das Obige ist der Inhalt des MySQL-Eintrags zum Ausführen mehrerer Anweisungen mit einem Funktionsaufruf .

Als nächstes stellen wir hauptsächlich die Methode von PHP vor, MySQL zu implementieren, um mehrere Anweisungen stapelweise auszuführen, und analysieren die relevanten Betriebsfähigkeiten von PHP, um eine Verbindung zu MySQL herzustellen und mehrere Anweisungen stapelweise auszuführen, in Form von Beispielen

Die Details lauten wie folgt:

Sie können mehrere Vorgänge ausführen oder mehrere Ergebnismengen gleichzeitig abrufen.

Beispiel:


<?php
$mysqli = new mysqli("localhost", "root", "111111", "test");
/* check connection */
if (mysqli_connect_errno()) {
  printf("Connect failed: %s\n", mysqli_connect_error());
  exit();
}
/* multi_query执行一个或多个针对数据库的查询。多个查询用分号进行分隔。 */
$query = "SELECT * from test where id = 1;";
$query .= "SELECT name FROM test";
/* 批量执行查询 ,如果第一个查询失败则返回 FALSE。*/
if ($mysqli->multi_query($query)) {
  do {
    /* 获取第一个结果集 */
    if ($result = $mysqli->store_result()) {
      while ($row = $result->fetch_row()) {
        printf("%s\n", $row[0]);
      }
      $result->free();
    }
    /* 检查一个多查询是否有更多的结果 */
    if ($mysqli->more_results()) {
      printf("-----------------\n");
    }
    //准备下一个结果集
  } while ($mysqli->next_result());
}
/* close connection */
$mysqli->close();
?>
Nach dem Login kopieren

Verwandte Empfehlungen:

MySQL-Implementierung und häufige Probleme bei der gleichzeitigen Ausführung mehrerer Anweisungen

Das obige ist der detaillierte Inhalt vonmysqli führt mehrere Anweisungen stapelweise und mehrere Anweisungen in einem Funktionsaufruf aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Funktion mysqli_connect() Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Funktion mysqli_connect() Jun 23, 2023 am 09:40 AM

Beim Schreiben von Webanwendungen mit PHP wird häufig eine MySQL-Datenbank zum Speichern von Daten verwendet. PHP bietet eine Möglichkeit zur Interaktion mit der MySQL-Datenbank namens MySQLi. Bei der Verwendung von MySQLi wird jedoch manchmal eine Fehlermeldung angezeigt, wie unten gezeigt: PHPFatalerror:Calltoundefinedfunctionmysqli_connect() Diese Fehlermeldung bedeutet, dass PHP my nicht finden kann

Was soll ich tun, wenn PHP keine Verbindung zu MySQL herstellen kann? Was soll ich tun, wenn PHP keine Verbindung zu MySQL herstellen kann? Nov 09, 2022 am 10:07 AM

Lösung für PHP, das keine Verbindung zu mysqli herstellen kann: 1. Öffnen Sie die Datei „php.ini“. 2. Suchen Sie nach „mysqli.reconnect“. 3. Ändern Sie „mysqli.reconnect = OFF“ in „mysqli.reconnect = on“.

Was ist die laufende Datei von mysql Was ist die laufende Datei von mysql Apr 11, 2023 am 10:38 AM

Die laufende Datei von mysql ist mysqld. Sie stellt das Mysql-Serverprogramm dar, das einen Serverprozess direkt starten kann .

PHP PDO vs. MySQL: Vergleich und Kontrast PHP PDO vs. MySQL: Vergleich und Kontrast Feb 19, 2024 pm 12:24 PM

PDOPDO ist eine objektorientierte Abstraktionsschicht für den Datenbankzugriff, die eine einheitliche Schnittstelle für PHP bereitstellt und es Ihnen ermöglicht, denselben Code für die Interaktion mit verschiedenen Datenbanken (z. B. Mysql, Postgresql, Oracle) zu verwenden. PDO verbirgt die Komplexität der zugrunde liegenden Datenbankverbindungen und vereinfacht Datenbankoperationen. Vorteile und Nachteile Vorteile: Einheitliche Schnittstelle, unterstützt mehrere Datenbanken, vereinfacht Datenbankoperationen, reduziert Entwicklungsschwierigkeiten, stellt vorbereitete Anweisungen bereit, verbessert die Sicherheit, unterstützt die Transaktionsverarbeitung. Nachteile: Die Leistung ist möglicherweise etwas geringer als bei nativen Erweiterungen, ist auf externe Bibliotheken angewiesen, kann den Overhead erhöhen. Democode verwendet PDO Connect zur MySQL-Datenbank: $db=newPDO("mysql:host=localhost;dbnam

PHP-Warnung: mysqli_connect(): (HY000/2002): Lösung für Verbindung abgelehnt PHP-Warnung: mysqli_connect(): (HY000/2002): Lösung für Verbindung abgelehnt Jun 23, 2023 am 08:54 AM

Wenn bei der Verwendung von PHP zum Herstellen einer Verbindung zu einer MySQL-Datenbank die folgende Fehlermeldung angezeigt wird: PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, können Sie versuchen, dieses Problem zu lösen, indem Sie die folgenden Schritte ausführen. Um zu bestätigen, ob der MySQL-Dienst normal ausgeführt wird, sollten Sie zunächst prüfen, ob der MySQL-Dienst normal ausgeführt wird. Wenn der Dienst nicht ausgeführt wird oder nicht gestartet werden kann, kann dies zu einem Fehler beim Verweigern der Verbindung führen. kannst du

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Methode mysqli::prepare() Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Methode mysqli::prepare() Jun 23, 2023 am 11:21 AM

Wenn Sie die mysqli-Erweiterung zum Verbinden und Betreiben einer MySQL-Datenbank verwenden, tritt manchmal der Fehler PHPFatalerror:Calltoundefinedmethodmysqli::prepare() auf. Dieser Fehler wird normalerweise durch folgende Gründe verursacht: PHP unterstützt die MySQLi-Erweiterung nicht richtig; der MySQL-Server ist nicht richtig konfiguriert oder läuft nicht

Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Funktion mysqli_stmt_bind_param() Lösung für PHP Schwerwiegender Fehler: Aufruf der undefinierten Funktion mysqli_stmt_bind_param() Jun 23, 2023 am 10:43 AM

Bei der Entwicklung von Websites mit PHP sind Datenbankoperationen weit verbreitet. MySQLi ist eine in PHP häufig verwendete Erweiterung zum Betrieb von MySQL-Datenbanken. Sie bietet eine relativ vollständige objektorientierte Schnittstelle, eine prozedurale Schnittstelle und unterstützt den Betrieb vorbereiteter Anweisungen. Aber manchmal, wenn wir die vorbereiteten Anweisungen von MySQL verwenden, stoßen wir auf einen solchen Fehler: PHPFatalerror:Calltoundefinedfunctionmysqli_stmt_bin

See all articles