OUJOOD.COM
Définition etUtilisation de mysqli_info() en PHP
PHP Version: 5+
La fonction mysqli_info() en PHP est utilisée pour récupérer des informations sur la dernière requête exécutée avec la bibliothèque MySQLi. Elle retourne des informations sur le statut de la dernière requête.
Syntaxe Orientée Objet
$mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = $mysqli->query("INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); // Récupération de l'information $info = $mysqli->info;
Syntaxe Procédurale
$con = mysqli_connect("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = mysqli_query($con, "INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); // Récupération de l'information $info = mysqli_info($con);
Valeurs Possibles et Paramètres de mysqli_info()
La fonction mysqli_info() retourne une chaîne de caractères qui contient des informations sur la dernière requête exécutée. Cette information peut inclure des détails sur le nombre de lignes affectées par la requête ou d'autres informations spécifiques au moteur de base de données.
oici un tableau récapitulatif des types de requêtes et des valeurs possibles retournées par la fonction mysqli_info() en PHP :
Type de Requête | Valeurs Possibles |
---|---|
INSERT | "Records: 1 Duplicates: 0 Warnings: 0" |
UPDATE | "Rows matched: 1 Changed: 1 Warnings: 0" |
DELETE | "Rows matched: 1 Changed: 1 Warnings: 0" |
SELECT | "Records: n Duplicates: m Warnings: 0" |
CREATE TABLE | "Table created" |
ALTER TABLE | "Table altered" |
DROP TABLE | "Table dropped" |
TRUNCATE TABLE | "Table truncated" |
CREATE DATABASE | "Database created" |
ALTER DATABASE | "Database altered" |
DROP DATABASE | "Database dropped" |
START TRANSACTION | "Transaction started" |
COMMIT | "Transaction committed" |
ROLLBACK | "Transaction rolled back" |
SAVEPOINT | "Savepoint created" |
ROLLBACK TO SAVEPOINT | "Rolled back to savepoint" |
Exemples Pratiques
Exemple 1: Récupération du nombre de lignes affectées
Dans cet exemple, nous utilisons mysqli_info() pour obtenir des informations sur le nombre de lignes affectées par une requête d'insertion.
Approche Orientée Objet :
Exemple : 📋 Copier le code
<?php $mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = $mysqli->query("INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); // Récupération de l'information $info = $mysqli->info; echo "Informations de la dernière requête : $info"; ?>
Approche Procédurale :
Exemple : 📋 Copier le code
<?php $con = mysqli_connect("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = mysqli_query($con, "INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); // Récupération de l'information $info = mysqli_info($con); echo "Informations de la dernière requête : $info"; ?>
Exemple 2: Utilisation dans une requête de mise à jour
Dans cet exemple, nous utilisons mysqli_info() pour obtenir des informations après l'exécution d'une requête de mise à jour.
Approche Orientée Objet :
Exemple : 📋 Copier le code
<?php $mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = $mysqli->query("UPDATE ma_table SET colonne1 = 'nouvelle_valeur' WHERE id = 1"); // Récupération de l'information $info = $mysqli->info; echo "Informations de la dernière requête : $info"; ?>
Approche Procédurale :
Exemple : 📋 Copier le code
<?php $con = mysqli_connect("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = mysqli_query($con, "UPDATE ma_table SET colonne1 = 'nouvelle_valeur' WHERE id = 1"); // Récupération de l'information $info = mysqli_info($con); echo "Informations de la dernière requête : $info"; ?>
Ces exemples illustrent comment utiliser la fonction mysqli_info() dans les deux approches (orientée objet et procédurale) pour récupérer des informations sur la dernière requête exécutée, que ce soit pour une insertion de données ou une mise à jour. Vous pouvez adapter ces exemples en fonction de votre propre code et de votre base de données.
Astuces et Conseils
Voici quelques astuces pour bien utiliser mysqli_info() :
- Assurez-vous d'avoir établi une connexion à la base de données avant d'utiliser cette fonction.
- Les informations retournées dépendent du moteur de base de données que vous utilisez (par exemple, MySQL, MariaDB, etc.). Assurez-vous de consulter la documentation spécifique à votre moteur pour comprendre les détails des informations retournées.
Cas d'Utilisation
Cas d'Utilisation 1: Suivi des modifications de base de données
Vous pouvez utiliser mysqli_info()
pour suivre les modifications apportées à votre base de données, telles que le nombre de lignes affectées par une requête.
Approche Orientée Objet
Exemple : 📋 Copier le code
<?php $mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = $mysqli->query("INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); // Récupération de l'information $info = $mysqli->info; echo "Informations de la dernière requête : $info"; ?>
Approche Procédurale
Exemple : 📋 Copier le code
<?php $link = mysqli_connect("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL $result = mysqli_query($link, "INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); // Récupération de l'information $info = mysqli_info($link); echo "Informations de la dernière requête : $info"; ?>
Cas d'Utilisation 2: Gestion des erreurs
En cas d'erreur lors de l'exécution d'une requête, mysqli_info()
peut vous aider à obtenir des informations sur la nature de l'erreur, ce qui peut être utile pour le débogage.
Approche Orientée Objet
Exemple : 📋 Copier le code
<?php $mysqli = new mysqli("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL avec une erreur $result = $mysqli->query("INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); if (!$result) { $info = $mysqli->info; echo "Erreur lors de l'exécution de la requête : $info"; // Vous pouvez également obtenir des informations plus détaillées sur l'erreur en utilisant $mysqli->error } ?>
Approche Procédurale
Exemple : 📋 Copier le code
<?php $link = mysqli_connect("localhost", "utilisateur", "motdepasse", "basededonnees"); // Exécution de la requête SQL avec une erreur $result = mysqli_query($link, "INSERT INTO ma_table (colonne1, colonne2) VALUES ('valeur1', 'valeur2')"); if (!$result) { $info = mysqli_info($link); echo "Erreur lors de l'exécution de la requête : $info"; // Vous pouvez également obtenir des informations plus détaillées sur l'erreur en utilisant mysqli_error($link) } ?>