Table des matières
La Extension MySQLi est un pilote de base de données relationnelle, il est utilisé dans le langage de programmation pHp pour fournir une interface avec les bases de données MySQL.Avantages de l'utilisation de MySQLi
Instructions préparées : il est plus facile de créer des requêtes, cela offre beaucoup de sécurité contre l'injection SQL, avec la fonction :
$ mysqli-> préparer ();Demandes ou requêtes multiples
Possibilité d'exécuter plusieurs requêtes ou requêtes dans une connexion.
Exemple
$ sqla = "SELECT * des clients;" $ sqlb. = "SELECT * FROM factures ***** BY customerid" $ mysqli-> multi_query ($ sqla; sqlb)Orienté objet
Cette fonctionnalité de MySQLi permet au développeur d'utiliser des objets pour améliorer l'utilisation, les performances et la visibilité du code source.
Le pilote d'extension MySQLi est utilisé dans le langage de programmation PHP pour fournir une interface aux bases de données MySQL. Les développeurs du langage de programmation PHP recommandent d'utiliser MySQLi pour les versions de serveur MySQL 4.1.3 et supérieures.
Nous allons créer une classe à utiliser à partir de pHp avec des méthodes et des propriétés pour manipuler ou gérer n'importe quelle base de données.
La classe sera la suivante :
class dbmysqli {// déclarer une variable pour la connexion public $ connection; // On déclare le constructeur de la classe public function __construct ($ host, $ user, $ password, $ db) {} // fonction pour créer des tables public function create table ($ sql) {} // Sauvegarde de nouvelles données dans le données de la base de données public function insert ($ table, $ field data) {} // Supprimer les données de la base de données public function delete ($ table, $ field data) {} fonction publique Update ($ table, $ field set, $ field condition) {} // fonction Recherche dans une table fonction publique recherche (table $, champs $) {}}Connexion et classe MySQLi
Pour connecter le serveur MySQLi, nous devons invoquer la méthode constructeur et envoyer quatre arguments sont le nom d'hôte tel que localhost, nom d'utilisateur, mot de passe de la base de données et le nom de la base de données.
Dans le constructeur, nous ajoutons la connexion au serveur :
fonction publique __construct ($ host, $ user, $ password, $ db) {$ this-> connection = new mysqli ($ host, $ user, $ clav); }Ensuite, nous l'invoquerons comme ceci :
// Connexion au serveur et à la base de données $ conectb = new dbmysqli ("localhost", "root", "abc123" c, "Vehiculosdb");Nous définissons la méthode pour créer des tables dynamiquement :
// Fonction qui crée des tables public function createtable ($ sql) {if ($ this-> connection-> query ($ sql) === TRUE) {echo "Une table a été créée"; } else {écho "Échec : table non créée". $ this-> connexion-> erreur; }}Ensuite, nous l'invoquerons comme ceci, créerons la requête sql et invoquerons la fonction creartabla ():
$ sql = ”DISPOSER LA TABLE SI EXISTE' clients`; CREATE TABLE IF NOT EXISTS `customers` (` customerid` int (11) NOT NULL AUTO_INCREMENT, `name` varchar (255) NOT NULL, PRIMARY KEY (` customerid`)) ”$ connectb -> creartabla ($ sql);Nous pouvons voir à partir de pHpMyAdmin comment la table a été créée lors de l'exécution du script php.
Nous définissons la méthode pour insérer/enregistrer des données
Ensuite, nous créons les méthodes appelées ABM ou CRUD, qui seront chargées de gérer les données dans les tables. Pour envoyer des paramètres à chaque méthode, nous utiliserons un tableau où l'index du tableau sera le champ de la table et la valeur de cet index sera les données du champ de la table. Chaque nom d'index doit être placé entre guillemets et la valeur doit respecter les règles suivantes :
- Les valeurs de chaîne doivent avoir des guillemets simples. Exemple "nom" => 'Maria'
- Les valeurs numériques ne doivent pas avoir de guillemets. Exemple "prix" => 10,50
- Le mot NULL OU vide ne doit pas avoir de guillemets. Exemple "prix" => NULL
// On crée la fonction qui va prendre en paramètre le tableau field => data public function insert ($ table, $ field data) {// on sépare les données s'il y en a plusieurs $ field = implode (",", array_keys ($ données de terrain)); $ i = 0 ; foreach ($ champs de données comme $ index => $ valeur) {$ données [$ i] = "'". $ valeur. "'"; $ je ++; } $ données = imploser (",", $ données); // On insère les valeurs dans chaque champ if ($ this-> connection-> query ("INSERT INTO $ table ($ index) VALUES ($ data)") === TRUE) {echo "Nouveau client inséré"; } else {écho "Le client n'a pas été inséré a échoué". $ this-> connection-> error; }}Nous créons notre matrice avec les données qui peuvent provenir d'un formulaire :
// Matrice de données à insérer $ clients = tableau ("nom" => 'Carlos Moira', "nom" => 'Jose Triana', "nom" => 'Julia Ordoñez', "nom" => 'Carla Angelez' );Ensuite, nous l'invoquerons comme ceci, nous invoquons la fonction d'insertion ("clients", $ clients) et ajoutons les paramètres :
$conedb -> insert ("clients", $ clients);Nous définissons la méthode pour supprimer les données
Pour effectuer l'opération de suppression, nous déclarons un tableau où nous indiquerons quelle ligne ou quel identifiant nous voulons supprimer.
// fonction pour supprimer des données d'une table public function delete ($ table, $ datafields) {$ i = 0; foreach ($ champs de données comme $ index => $ valeur) {$ données [$ i] = "'". $ valeur. "'"; $ je ++; } champ $ et données = imploser ("ET", $ données); if ($ this-> connexion-> requête ("DELETE FROM $ table WHERE $ fielddata") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {écho "Enregistrement supprimé"; } else {echo "Échec, l'enregistrement n'a pas pu être supprimé". $ this-> connection-> error;}}Nous créons notre matrice avec les données sélectionnées à supprimer qui peuvent provenir d'un formulaire
// Matrice de données à supprimer $ clients delete = tableau ("customer id" => 1, "customer id" => 50, "customer id" => 8, "customer id" => 104);Ensuite, nous l'invoquerons comme ceci, nous invoquons la fonction de suppression ("clients", $ clients supprimer) et ajoutons les paramètres
$ conectadb -> delete ("clients", $ clients delete);Nous définissons la méthode pour mettre à jour les données
Pour mettre à jour les données de la ligne que nous devons modifier, nous allons déclarer deux tableaux associatifs, l'un sera pour les champs à modifier et l'autre pour la condition où dans la requête SQL. Les règles matricielles doivent respecter la même syntaxe que celle que nous avons définie pour la matrice depuis le début.
Considérant la syntaxe de mise à jour MySQL :
MISE À JOUR Clients SET nom = 'nouveau nom' WHERE clientid.id = idvalue; // On crée la fonction qui va prendre en paramètre le champ du tableau => data public function Update ($ table, $ setfields, $ conditionfields) {// on sépare les valeurs SET pour modifier $ i = 0; foreach ($ camposset as $ index => $ data) {$ dataset [$ i] = $ index. "= '". $ data. "'"; $ je ++; } $ queryset = imploser (",", $ dataset); $ i = 0; foreach ($ champs de condition as $ index => $ conditiondata) {$ condition [$ i] = $ index. "= '". $ conditiondata. "'"; $ je ++; } $ querycondition = imploser ("ET", $ condition); // Mettre à jour les enregistrements if ($ this-> connection-> query ("UPDATE $ table SET $ queryset WHERE $ querycondition") === TRUE) {if (mysqli_affected_rows ($ this-> connection)) {echo "Record mis à jour "; } else {echo "Échec, l'enregistrement n'a pas pu être supprimé". $ this-> connection-> error;}}Nous créons notre tableau avec les données SET qui seront les champs à mettre à jour et de nouvelles valeurs, nous créons également un tableau pour la condition WHERE avec l'id des enregistrements à mettre à jour pouvant provenir d'un formulaire :
// Matrice de données SET $ clientsset = array ("nom" => 'Carlos Juan Dolfo', "nom" => 'Pedro Dorien Triana', "nom" => 'Enrique Ordoñez', "nom" => 'Carla Dolores Angèle'); $ clientswhere = array ("customerid" => 1, "customerid" => 2, "customerid" => 5, "customerid" => 10);Ensuite, nous l'invoquerons comme ceci, nous invoquons la fonction Update ("customers", $ customersset, $ customerswhere) et y ajoutons les paramètres.
$ dbconnect-> Update ("clients", $ clientsset, $ clientswhere);Dans toutes les requêtes, nous utilisons la fonction native MySQLi pour détecter les erreurs $ mysqli-> erreur, qui affichera un message d'erreur pour toute requête SQL ou fonction MySQLi qui a pu être exécutée et a échoué, afin que nous puissions savoir pourquoi l'erreur s'est produite.
Nous définissons la méthode pour rechercher des données
Pour obtenir les données de la table, nous créons une méthode de requête avec deux paramètres, l'un est le nom de la table et l'autre est un tableau qui contient le nom des colonnes et la valeur à rechercher.
On peut indiquer le type de matrice de résultat à obtenir. Les valeurs possibles pour ce paramètre sont les constantes MYSQLI_ASSOC, MYSQLI_NUM.
Type de tableau MYSQLI_ASSOC
Array {name => 'Carlos Juan Dolfo', name ”=> 'Enrique Ordoñez'}Type de tableau MYSQLI_NUM
Array {0 => 'Carlos Juan Dolfo', 1 => 'Enrique Ordoñez'} recherche de fonction publique (table $, champs $) {$ champs = imploser (",", $ champs); $ result = $ this-> connection-> query ("SELECT $ champs FROM $ table"); return $ result-> fetch_all (MYSQLI_ASSOC); }Nous créons notre matrice avec les données à rechercher qui peuvent provenir d'un formulaire :
// Tableau de données à rechercher $ clients search = array ("client id", ”name”);Ensuite, nous allons l'invoquer comme ceci, nous invoquons la fonction de recherche ("clients", $ clients recherche) et ajoutons les paramètres :
$ connectdb -> recherche (table $, recherche de clients $);Cette fonction renvoie un enregistrement que nous devrons parcourir sous forme de tableau pour voir les données de chaque champ :Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif