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.
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.
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.
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.
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.
$mysqli = mysqli_connect("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user"); $row = mysqli_fetch_assoc($res); print_r($row);
$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = $mysqli->query("SELECT * FROM zyblog_test_user"); $row = $res->fetch_assoc(); print_r($row);
另外,这两种方式还可以混合使用,不过并不推荐。混合起来使用的话很容易让看代码的人晕头转向。所以,最好还是在一个项目中就坚持使用一种方式。
$mysqli = new mysqli("localhost", "root", "", "blog_test"); $res = mysqli_query($mysqli, "SELECT * FROM zyblog_test_user"); $row = $res->fetch_assoc(); print_r($row);
在这段代码中,我们实例化了一个 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
推荐学习: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!