Table des matières
Qu'est-ce que MySQLi" >Qu'est-ce que MySQLi
Différences et connexions avec MySQL et PDO
Installation de l'extension et points à noter à propos de MySQL8
Orienté processus " >Orienté processus
Orienté objet " >Orienté objet
面向对象和面向过程混用" >面向对象和面向过程混用
总结" >总结
Maison développement back-end Problème PHP Vous faire comprendre MySQLi en PHP en trois minutes

Vous faire comprendre MySQLi en PHP en trois minutes

Jun 24, 2021 pm 04:30 PM
php

À partir de cet article, nous découvrons l'extension MySQLi. On peut dire que l'extension MySQL (originale) est le tuteur d'introduction permettant à beaucoup d'entre nous de se connecter à la base de données lorsque nous commençons à apprendre PHP. Désormais, si vous souhaitez utiliser du code procédural pour faire fonctionner la base de données, vous ne pouvez utiliser que l'extension mysqli.

Vous faire comprendre MySQLi en PHP en trois minutes

Notre étude de PDO est terminée. À partir de cet article, nous continuons à apprendre une autre extension MySQL, qui est l'extension principale de MySQLi en plus de PDO. On peut dire que son ancêtre, l’extension MySQL (originale), était le guide incontournable pour se connecter aux bases de données lorsque beaucoup d’entre nous ont commencé à apprendre PHP. Cependant, à mesure que les temps changent, l'extension MySQL (originale) a été complètement abandonnée dans PHP7. Désormais, si vous souhaitez utiliser du code procédural pour faire fonctionner la base de données, vous ne pouvez utiliser que l'extension mysqli. Bien entendu, l'extension mysqli prend également en charge l'écriture orientée objet.

Qu'est-ce que MySQLi

L'extension MySQLi nous permet d'accéder aux fonctions fournies par les bases de données MySQL4.1 et supérieures. Il est spécifiquement destiné à la base de données MySQL, contrairement à PDO qui peut se connecter à différentes bases de données via différents DNS.

Différences et connexions avec MySQL et PDO

Tout d'abord, passons en revue la première extension MySQL.

  • Uniquement pour les procédures

  • Ne prend pas en charge les procédures stockées, l'exécution de plusieurs instructions, les instructions préparées

  • PHP7 a été supprimé et n'est pas du tout pris en charge

Puis PDO

  • Prend uniquement en charge l'utilisation orientée objet

  • Peut se connecter à une variété de bases de données, le changement de base de données entraînera moins de changements et vous n'aurez peut-être même pas besoin de modifier le code

  • Prend en charge les procédures stockées, l'exécution de plusieurs instructions , et les déclarations préparées

Le dernier est MySQLi.

  • Prend en charge l'écriture orientée objet et orientée processus

  • Prend en charge uniquement la base de données MySQL

  • Procédures stockées prises en charge, exécution de plusieurs instructions, instructions préparées

  • Suite aux mises à jour des versions de PHP et MySQL, davantage de fonctionnalités avancées de MySQL peuvent être prises en charge plus rapidement

À en juger par ces trois caractéristiques, l'extension MySQL (originale) n'est définitivement pas recommandée Même pour les anciens projets, tant qu'il s'agit d'une version PHP prenant en charge PDO ou MySQLi, vous devriez envisager de convertir la connexion à la base de données vers celle-ci. de deux manières. Si vous êtes encore en train d'apprendre à utiliser les extensions MySQL (originales) dans un environnement PHP5, vous pouvez les déposer.

Quant au choix entre PDO et MySQLi, c'est une question d'avis. En fait, il n'y a pas beaucoup de différence entre eux, mais les frameworks modernes à grande échelle encapsuleront essentiellement PDO comme connexion à la base de données par défaut. Après tout, sa portabilité peut faciliter la connexion de ces frameworks généraux à différentes bases de données. Dans certains petits frameworks ou projets, MySQLi est encore visible.

Bien sûr, niche ne veut pas dire mauvais. Tout comme dans le développement quotidien, nous utilisons rarement d'autres bases de données dans l'environnement PHP, nous pouvons donc utiliser complètement un ensemble de MySQLi pour fonctionner dans nos propres petits projets. est plus pratique et plus rapide. Dans le même temps, si l'ancien projet souhaite passer à la version PHP7, s'il utilisait auparavant MySQL (original) pour se connecter à la base de données, il peut également remplacer rapidement le code MySQL (original) par MySQLi dans tous les aspects.

Installation de l'extension et points à noter à propos de MySQL8

L'extension MySQLi est publiée avec le code source PHP Nous ajoutons simplement --with-mysqli lors de la compilation de PHP. Le pilote de base de données par défaut utilise désormais mysqlnd et libmysql a été pratiquement éliminé. Par conséquent, il n’est pas nécessaire d’ajouter d’autres paramètres lors de la compilation, il suffit de compiler directement.

Vous devez faire attention lors de la connexion à MySQL8, car le serveur MySQL8 utilisera caching_sha2_password comme cryptage de mot de passe par défaut. MySQLi dans les versions antérieures à PHP7.2.4 utilisera mysql_native_password pour crypter le mot de passe de connexion, ce qui entraînera l'impossibilité de se connecter à la base de données. Vous pouvez modifier le fichier my.cnf et définir default_authentication_plugin=mysql_native_password pour permettre à MySQL8 d'utiliser également mysql_native_password pour crypter les mots de passe des utilisateurs.

Orienté processus

Comme mentionné ci-dessus, MySQLi prend en charge deux méthodes d'écriture, à savoir orientée objet et orientée procédure. Une compréhension simple est qu'une façon d'écrire est l'extension MySQL (originale) et que l'autre façon d'écrire est similaire à PDO. Examinons d'abord l'écriture orientée processus.

$mysqli = mysqli_connect("localhost", "root", "", "blog_test");
$res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user");
$row = mysqli_fetch_assoc($res);
print_r($row);
Copier après la connexion

Ne pensez-vous pas qu'il est vraiment pratique de transplanter le code d'extension MySQL (original) ? Changez simplement tous les noms de méthodes en mysqli_xxx.

Orienté objet

L'orienté objet, c'est un peu comme le PDO. Nous devons d’abord obtenir une classe de handles de connexion, puis exploiter cette classe.

$mysqli = new mysqli("localhost", "root", "", "blog_test");
$res = $mysqli->query("SELECT * FROM zyblog_test_user");
$row = $res->fetch_assoc();
print_r($row);
Copier après la connexion

面向对象和面向过程混用

另外,这两种方式还可以混合使用,不过并不推荐。混合起来使用的话很容易让看代码的人晕头转向。所以,最好还是在一个项目中就坚持使用一种方式。

$mysqli = new mysqli("localhost", "root", "", "blog_test");
$res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user");
$row = $res->fetch_assoc();
print_r($row);
Copier après la connexion

在这段代码中,我们实例化了一个 mysqli 对象,然后使用面向过程的 mysqli_query() 函数来执行语句,接着又使用面向对象的方式来获取结果集。是不是很乱?但是它是可以正常运行的。

总结

从上面的内容中可以看出,PDO 的特点是支持多种不同类型的数据库,就像 Java 中的 JDBC 一样。而 MySQLi 虽然只支持 MySQL 数据库,但它却可以同时支持面向对象和面向过程两种写法。是我们针对老项目代码进行升级优化的好帮手。同时,它还是现在入门 PHP 学习相关数据库操作的首选。在接下来的文章中,我们将默认只使用 面向对象 式的写法来继续学习 MySQLi 扩展相关的知识。

测试代码:

https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/4.PHP中的MySQLi扩展学习(一)MySQLi介绍.php
Copier après la connexion

推荐学习:php视频教程

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles