


mysqli exécute plusieurs instructions par lots et exécute plusieurs instructions en un seul appel de fonction
Cet article explique principalement comment mysqli exécute plusieurs instructions par lots et exécute plusieurs instructions avec un seul appel de fonction. J'espère que vous pourrez avoir vos propres idées à travers les exemples de cet article.
Prend en charge l'exécution de plusieurs instructions spécifiées dans une seule chaîne. Pour utiliser cette fonctionnalité avec une connexion donnée, vous devez spécifier l'option CLIENT_MULTI_STATEMENTS dans le paramètre flags à mysql_real_connect() lors de l'ouverture de la connexion. Il peut également être défini pour une connexion existante en appelant mysql_set_server_option(MYSQL_OPTION_MULTI_STATEMENTS_ON).
Routines courantes :
/* 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));
Regardez le code spécifiquement :
#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); }
Ce qui précède est le contenu de l'entrée MySQL pour exécuter plusieurs instructions avec un seul appel de fonction .
Ensuite, nous présentons principalement la méthode PHP pour implémenter mysqli pour exécuter plusieurs instructions par lots, et analysons les compétences opérationnelles pertinentes de PHP pour se connecter à mysqli et exécuter plusieurs instructions par lots sous forme d'exemples <. 🎜>
Les détails sont les suivants :Vous pouvez effectuer plusieurs opérations ou récupérer plusieurs ensembles de résultats à la fois. Exemple :<?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(); ?>
Implémentation de MySQL et problèmes courants liés à l'exécution simultanée de plusieurs instructions
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Lors de l'écriture d'applications Web à l'aide de PHP, une base de données MySQL est souvent utilisée pour stocker les données. PHP fournit un moyen d'interagir avec la base de données MySQL appelé MySQLi. Cependant, parfois lors de l'utilisation de MySQLi, vous rencontrerez un message d'erreur, comme indiqué ci-dessous : PHPFatalerror:Calltoundefinedfunctionmysqli_connect() Ce message d'erreur signifie que PHP ne peut pas trouver mon

Solution à PHP incapable de se connecter à mysqli : 1. Ouvrez le fichier "php.ini" ; 2. Recherchez "mysqli.reconnect" ; 3. Remplacez "mysqli.reconnect = OFF" par "mysqli.reconnect = on".

PDOPDO est une couche d'abstraction d'accès aux bases de données orientée objet qui fournit une interface unifiée pour PHP, vous permettant d'utiliser le même code pour interagir avec différentes bases de données (telles que Mysql, postgresql, oracle). PDO masque la complexité des connexions à la base de données sous-jacente et simplifie les opérations de la base de données. Avantages et inconvénients Avantages : Interface unifiée, prend en charge plusieurs bases de données, simplifie les opérations de base de données, réduit les difficultés de développement, fournit des instructions préparées, améliore la sécurité, prend en charge le traitement des transactions. Inconvénients : les performances peuvent être légèrement inférieures à celles des extensions natives, reposent sur des bibliothèques externes, peuvent augmenter la surcharge. le code de démonstration utilise PDO Connectez-vous à la base de données MySQL : $db=newPDO("mysql:host=localhost;dbnam

Si vous rencontrez le message d'erreur suivant lorsque vous utilisez PHP pour vous connecter à une base de données MySQL : PHPWarning:mysqli_connect():(HY000/2002):Connectionrefused, vous pouvez essayer de résoudre ce problème en suivant les étapes ci-dessous. Pour confirmer si le service MySQL fonctionne normalement, vous devez d'abord vérifier si le service MySQL fonctionne normalement. Si le service ne fonctionne pas ou ne démarre pas, cela peut provoquer une erreur de refus de connexion. peux-tu

Le fichier en cours d'exécution de mysql est mysqld ; mysqld est un fichier exécutable, qui représente le programme serveur Mysql. L'exécution de ce fichier peut démarrer directement un processus serveur ; et mysqld_safe est un script de démarrage, qui appellera indirectement mysqld et démarrera également un processus de surveillance. .

Comment utiliser MySQLi pour établir une connexion à une base de données en PHP : Inclure l'extension MySQLi (require_once) Créer une fonction de connexion (functionconnect_to_db) Appeler la fonction de connexion ($conn=connect_to_db()) Exécuter une requête ($result=$conn->query()) Fermer connexion ( $conn->close())

Lorsque vous utilisez l'extension mysqli pour vous connecter et exploiter une base de données MySQL, vous rencontrez parfois l'erreur PHPFatalerror:Calltoundefinedmethodmysqli::prepare(). Cette erreur est généralement causée par les raisons suivantes : PHP n'a pas une prise en charge suffisante pour l'extension mysqli ; l'extension mysqli n'est pas chargée ou configurée correctement ; il y a des erreurs de syntaxe dans le code PHP ; le serveur MySQL n'est pas correctement configuré ou en cours d'exécution ;

Avec le développement des applications Web, le langage PHP a été largement utilisé dans le développement Web. Dans la version PHP8.0, une nouvelle fonctionnalité de langage a été introduite : l'instruction multi-catch. Qu'est-ce qu'une déclaration multi-catch ? Dans les versions précédentes de PHP, les développeurs devaient écrire plusieurs instructions catch pour gérer plusieurs types d'exceptions. Par exemple, le bloc de code suivant montre la gestion de deux exceptions différentes : try{//Somecodethatmay
