Inhaltsverzeichnis
Was ist MySQLi?" >Was ist MySQLi?
Unterschiede und Zusammenhänge mit MySQL und PDO
Sie müssen beim Herstellen einer Verbindung zu MySQL8 aufpassen, da der MySQL8-Server standardmäßig caching_sha2_password als Passwortverschlüsselung verwendet. MySQLi verwendet in Versionen vor PHP7.2.4 mysql_native_password, um das Verbindungskennwort zu verschlüsseln, was dazu führt, dass keine Verbindung zur Datenbank hergestellt werden kann. Sie können die Datei my.cnf ändern und default_authentication_plugin=mysql_native_password festlegen, damit MySQL8 auch mysql_native_password zum Verschlüsseln von Benutzerkennwörtern verwenden kann.
面向对象和面向过程混用" >面向对象和面向过程混用
总结" >总结
Heim Backend-Entwicklung PHP-Problem Bringen Sie Ihnen in drei Minuten bei, MySQLi in PHP zu verstehen

Bringen Sie Ihnen in drei Minuten bei, MySQLi in PHP zu verstehen

Jun 24, 2021 pm 04:30 PM
php

Ab diesem Artikel lernen wir die MySQLi-Erweiterung kennen. Man kann sagen, dass die MySQL-Erweiterung (ursprünglich) für viele von uns das Einführungs-Tutorial ist, um eine Verbindung zur Datenbank herzustellen, wenn wir zum ersten Mal mit dem Erlernen von PHP beginnen. Wenn Sie nun prozeduralen Code zum Betreiben der Datenbank verwenden möchten, können Sie nur die MySQLi-Erweiterung verwenden.

Bringen Sie Ihnen in drei Minuten bei, MySQLi in PHP zu verstehen

Wir haben das Studium von PDO abgeschlossen. Ab diesem Artikel lernen wir weiterhin eine weitere MySQL-Erweiterung kennen, die neben PDO die Kernerweiterung von MySQLi ist. Sein Vorfahre, die MySQL-Erweiterung (ursprünglich), war wohl der Leitfaden für die Verbindung zu Datenbanken, als viele von uns anfingen, PHP zu lernen. Im Laufe der Zeit wurde die MySQL-Erweiterung (ursprünglich) in PHP7 jedoch vollständig aufgegeben. Wenn Sie nun prozeduralen Code zum Betreiben der Datenbank verwenden möchten, können Sie nur die MySQLi-Erweiterung verwenden. Natürlich unterstützt die MySQLi-Erweiterung auch objektorientiertes Schreiben.

Was ist MySQLi?

Die MySQLi-Erweiterung ermöglicht uns den Zugriff auf die Funktionen, die von MySQL4.1-Datenbanken und höher bereitgestellt werden. Es ist speziell auf die MySQL-Datenbank ausgerichtet, im Gegensatz zu PDO, das über verschiedene DNS eine Verbindung zu verschiedenen Datenbanken herstellen kann.

Unterschiede und Zusammenhänge mit MySQL und PDO

Lassen Sie uns zunächst einen Blick auf die früheste MySQL-Erweiterung werfen.

  • Nur für Prozeduren

  • Unterstützt gespeicherte Prozeduren, die Ausführung mehrerer Anweisungen und vorbereitete Anweisungen nicht.

  • PHP7 wurde gelöscht und wird überhaupt nicht unterstützt. Dann PDO.

Unterstützt nur für Mit der Objektmethode

  • kann eine Verbindung zu einer Vielzahl von Datenbanken hergestellt werden, das Wechseln der Datenbanken verursacht weniger Änderungen und Sie müssen möglicherweise nicht einmal den Code ändern

  • Unterstützt gespeicherte Prozeduren, die Ausführung mehrerer Anweisungen und vorbereitete Anweisungen

  • Das letzte ist MySQLi.

Unterstützt sowohl objektorientierte als auch prozessorientierte Schreibmethoden

  • Unterstützt nur MySQL-Datenbank

  • Unterstützt gespeicherte Prozeduren, die Ausführung mehrerer Anweisungen und vorbereitete Anweisungen

  • Befolgen Sie die Versionsaktualisierungen von PHP und MySQL , Sie können schnell aktualisieren und weitere erweiterte MySQL-Funktionen unterstützen

  • Nach diesen drei Funktionen zu urteilen, ist die MySQL-Erweiterung (Original) definitiv nicht zu empfehlen, selbst für alte Projekte, solange sie die PHP-Version von PDO oder MySQLi unterstützt sollten darüber nachdenken, die Datenbankverbindung auf eine dieser beiden Methoden umzustellen. Wenn Sie noch dabei sind, die Verwendung von MySQL-(Original-)Erweiterungen in einer PHP5-Umgebung zu erlernen, können Sie es aufgeben.

  • Die Wahl zwischen PDO und MySQLi hängt vom Betrachter ab. Tatsächlich gibt es keinen großen Unterschied zwischen ihnen, aber moderne große Frameworks kapseln grundsätzlich PDO als Standard-Datenbankverbindung. Schließlich kann seine Portabilität die Verbindung dieser allgemeinen Frameworks mit verschiedenen Datenbanken erleichtern. In einigen kleinen Frameworks oder Projekten ist MySQLi noch zu sehen.

Nische bedeutet natürlich nicht schlecht. Genau wie in der täglichen Entwicklung verwenden wir selten andere Datenbanken in der PHP-Umgebung, daher ist es bequemer, in unseren eigenen kleinen Projekten einen Satz MySQLi vollständig zu verwenden. Bequem und schnell. Wenn das alte Projekt auf die PHP7-Version umsteigen möchte und zuvor MySQL (Original) zum Herstellen einer Verbindung zur Datenbank verwendet hat, kann gleichzeitig der MySQL (Original)-Code in allen Aspekten schnell durch MySQLi ersetzt werden.

Erweiterungsinstallation und Dinge, die Sie zu MySQL8 beachten sollten

Die MySQLi-Erweiterung wird mit dem PHP-Quellcode veröffentlicht. Beim Kompilieren von PHP fügen wir einfach --with-mysqli hinzu. Der Standard-Datenbanktreiber verwendet jetzt mysqlnd und libmysql wurde im Wesentlichen eliminiert. Daher müssen beim Kompilieren keine weiteren Parameter hinzugefügt werden, sondern einfach direkt kompiliert werden.

Sie müssen beim Herstellen einer Verbindung zu MySQL8 aufpassen, da der MySQL8-Server standardmäßig caching_sha2_password als Passwortverschlüsselung verwendet. MySQLi verwendet in Versionen vor PHP7.2.4 mysql_native_password, um das Verbindungskennwort zu verschlüsseln, was dazu führt, dass keine Verbindung zur Datenbank hergestellt werden kann. Sie können die Datei my.cnf ändern und default_authentication_plugin=mysql_native_password festlegen, damit MySQL8 auch mysql_native_password zum Verschlüsseln von Benutzerkennwörtern verwenden kann.

Prozedurorientiert

Wie oben erwähnt, unterstützt MySQLi zwei Schreibmethoden, nämlich objektorientiert und prozedurorientiert. Ein einfaches Verständnis besteht darin, dass eine Schreibweise die MySQL-Erweiterung (Original) ist und die andere Schreibweise PDO ähnelt. Schauen wir uns zunächst das prozessorientierte Schreiben an.
$mysqli = mysqli_connect("localhost", "root", "", "blog_test");
$res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user");
$row = mysqli_fetch_assoc($res);
print_r($row);
Nach dem Login kopieren
Finden Sie es nicht wirklich praktisch, den MySQL-Erweiterungscode (original) zu übertragen? Ändern Sie einfach alle Methodennamen in mysqli_xxx.

Objektorientiert

Objektorientiert ist ein bisschen wie PDO. Wir müssen zuerst eine Verbindungshandle-Klasse erhalten und diese Klasse dann betreiben.
$mysqli = new mysqli("localhost", "root", "", "blog_test");
$res = $mysqli->query("SELECT * FROM zyblog_test_user");
$row = $res->fetch_assoc();
print_r($row);
Nach dem Login kopieren

面向对象和面向过程混用

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

$mysqli = new mysqli("localhost", "root", "", "blog_test");
$res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user");
$row = $res->fetch_assoc();
print_r($row);
Nach dem Login kopieren

在这段代码中,我们实例化了一个 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
Nach dem Login kopieren

推荐学习:php视频教程

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen in drei Minuten bei, MySQLi in PHP zu verstehen. 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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
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)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

CakePHP erstellt Validatoren CakePHP erstellt Validatoren Sep 10, 2024 pm 05:26 PM

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.

CakePHP-Protokollierung CakePHP-Protokollierung Sep 10, 2024 pm 05:26 PM

Die Anmeldung bei CakePHP ist eine sehr einfache Aufgabe. Sie müssen nur eine Funktion verwenden. Sie können Fehler, Ausnahmen, Benutzeraktivitäten und von Benutzern durchgeführte Aktionen für jeden Hintergrundprozess wie Cronjob protokollieren. Das Protokollieren von Daten in CakePHP ist einfach. Die Funktion log() wird bereitgestellt

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP ist ein Open-Source-MVC-Framework. Es erleichtert die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich. CakePHP verfügt über eine Reihe von Bibliotheken, um die Überlastung der häufigsten Aufgaben zu reduzieren.

See all articles