Heim > Themen > php mysql > Interaktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichen

Interaktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichen

coldplay.xixi
Freigeben: 2020-09-08 13:49:18
nach vorne
2806 Leute haben es durchsucht

Interaktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichen

Verwandte Lernempfehlungen: MySQL-Tutorial, PHP-Programmierung

Im vorherigen Tutorial habe ich Ihnen gezeigt, wie Sie mit der MySQL-Datenbank über die in PHP integrierte Mysqli-Erweiterung interagieren Schauen Sie sich eine weitere in PHP integrierte Datenbankerweiterung an – PDO. Der vollständige Name lautet PHP Data Objects, also PHP-Datenobjekte.

PDO-Einführung und Installation

PDO definiert eine leichte, konsistente Schnittstelle für PHP, um auf die Datenbank zuzugreifen, sodass es eine Datenzugriffsabstraktionsschicht bereitstellt, die selbst keine Datenbankinteraktionsfunktion implementieren kann. Es muss ein PDO für eine bestimmte Datenbank verwendet werden Zu diesen spezifischen Datenbanktreibern gehören MySQL, PostgreSQL, SQLite, SQL Server, Oracle usw. Daher ist PDO eine standardmäßigere und allgemeinere Datenbankerweiterung und derzeit in verschiedenen Mainstream-Anwendungen vollständig objektorientiert PHP Im Framework ist PDO zur Grundkomponente für den Aufbau von Datenbankinteraktionen geworden, einschließlich des Laravel-Frameworks, das auch Datenbankzugriffsfunktionen basierend auf PDO-Erweiterungen bereitstellt.

Die zuvor empfohlenen lokalen integrierten PHP-Entwicklungsumgebungen unterstützen alle PDO-Erweiterungen (im Folgenden sind Laragons vorinstallierte Interaktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichenen aufgeführt):

PHP 扩展

Und das können Sie sehen, mit Ausnahme des PDO Erweiterung Darüber hinaus gibt es eine passende spezifische Datenbankerweiterung pdo_mysql. Nur mit dieser spezifischen Erweiterung können Sie auf die MySQL-Datenbank zugreifen. Darüber hinaus bietet PDO eine einheitliche Datenbankzugriffsschnittstelle, sodass bestimmte Datenbankerweiterungen, die die PDO-Schnittstelle implementieren, auf genau die gleiche Weise auf die Datenbank zugreifen können. Wenn die Anwendung auf diese Weise die Datenbank wechseln muss, ist keine Rekonstruktion der Datenbank erforderlich Allein auf dieser Grundlage können Sie die MySQLi-Erweiterung wegwerfen und PDO übernehmen. PDO 扩展外,还有一个与之匹配的具体数据库扩展 pdo_mysql,有了这个具体扩展,才能访问 MySQL 数据库。另外,PDO 提供了统一的数据库访问接口,所以实现了 PDO 接口的具体数据库扩展可以通过完全一样的方法访问数据库,这样一来,如果应用需要切换数据库,就不需要对数据库操作代码进行重构,仅凭这一点,就可以扔掉 MySQLi 扩展,投入 PDO 的怀抱了。

如果安装过 Laradock,可以启动 workspace 容器,然后查看其预装的 PHP 扩展,可以看到,它包含更多的具体 PDO 数据库驱动支持:

PHP 扩展

其中 pdo_pgsql 表示 PostgresSQL 数据库驱动,pdo_sqlite 表示 SQLite 数据库驱动。

建立数据库连接与基本查询

在我们的教程中,还是选择以 MySQL 为例进行演示。

要通过 PDO 扩展建立数据库连接,直接实例化 PDO 对象即可,我们编写一段简单的示例代码如下(在 php_learning/mysql 目录下新建 pdo.php 存储代码):

<?php

// 设置连接属性
$dsn = &#39;mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8mb4&#39;;
$user = &#39;root&#39;;
$pass = &#39;root&#39;;

try {
    // 建立连接
    $pdo = new PDO($dsn, $user, $pass);
    // 执行 SQL 查询
    $sql = $pdo->quote(&#39;SELECT * FROM `post` ORDER BY `id` DESC&#39;);
    $res = $pdo->query($sql);
    // 打印查询结果
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    foreach ($res as $row) {
        print_r($row);
    }
} catch (PDOException $exception) {
    // 如果数据库操作出现异常,则捕获并打印
    printf("Error: %s\n", $exception->getMessage());
} finally {
    // 释放 PDO 连接实例
    $pdo = null;
}
Nach dem Login kopieren

在实例化 PDO 对象创建数据库连接时,至少需要传入三个字符串类型参数,第一个参数包含了数据库主机信息,比如数据库驱动类型(这里是 mysql)、IP地址(本地地址是 127.0.0.1)、端口号(可选,默认是 3306)、要连接的数据库名称(test)、字符编码信息(utf8mb4)等,第二个参数是用户名,第三个参数是密码。

接下来,我们就可以调用 PDO 对象实例 $pdo 上的 query 方法执行指定 SQL 语句与数据库进行交互了(增删改查),不过在此之前,我们先调用了 quote 方法对查询 SQL 语句进行转义,该函数的功能类似 mysqli_escape_string

执行完 SQL 查询后,会返回一个查询结果集,可以通过循环遍历打印该结果。

此外,通过 PDO 扩展进行数据库连接和查询操作如果出现错误,会抛出异常,为了增加程序的健壮性,我们在通过 try...catch... 语句捕获 PDOException 异常,并打印错误信息,最后通过 finally 语句释放 PDO 对象实例,因为该语句块不管是否抛出异常都会执行。

运行 php -S localhost:9000 启动内置 HTTP 服务器进行测试,在浏览器中访问 http://localhost:9000/mysql/pdo.php,即可看到正常的打印结果:

Interaktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichen

我们修改下上述代码中的连接信息,比如将密码值调整为 test

Wenn Sie Laradock installiert haben, können Sie den workspace-Container starten und dann seine vorinstallierte Interaktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichen anzeigen. Sie können sehen, dass er spezifischere PDO-Datenbanktreiberunterstützung enthält:

Interaktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichenInteraktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichen

wobei pdo_pgsql das PostgresSQL darstellt Datenbanktreiber, pdo_sqlite stellt den SQLite-Datenbanktreiber dar.

Herstellen einer Datenbankverbindung und einer einfachen Abfrage🎜🎜In unserem Tutorial verwenden wir immer noch MySQL als Beispiel zur Demonstration. 🎜🎜Um eine Datenbankverbindung über die PDO-Erweiterung herzustellen, instanziieren Sie einfach das PDO-Objekt direkt. Wir schreiben einen einfachen Beispielcode wie folgt (erstellen Sie pdo.phpim Verzeichnis php_learning/mysql). > Code speichern): 🎜rrreee🎜 Beim Instanziieren eines PDO-Objekts zum Erstellen einer Datenbankverbindung müssen mindestens drei String-Typ-Parameter übergeben werden. Der erste Parameter enthält Datenbank-Hostinformationen, wie z. B. den Datenbanktreibertyp (hier ist ). mysql ), IP-Adresse (die lokale Adresse ist 127.0.0.1), Portnummer (optional, der Standardwert ist 3306), der Name der Datenbank verbunden sein (test), Informationen zur Zeichenkodierung (utf8mb4) usw. Der zweite Parameter ist der Benutzername und der dritte Parameter ist das Passwort. 🎜🎜Als nächstes können wir die Abfragemethode für die PDO-Objektinstanz $pdo aufrufen, um die angegebene SQL-Anweisung auszuführen, um mit der Datenbank zu interagieren (Hinzufügen, Löschen, Ändern, Abfragen), aber vorher müssen wir Erster Aufruf quote Methode zum Escape-Abfragen von SQL-Anweisungen. Die Funktion dieser Funktion ähnelt mysqli_escape_string. 🎜🎜Nach der Ausführung der SQL-Abfrage wird ein Abfrageergebnissatz zurückgegeben, der durch Schleifendurchlauf gedruckt werden kann. 🎜🎜Wenn außerdem ein Fehler bei Datenbankverbindungs- und Abfragevorgängen über die PDO-Erweiterung auftritt, wird eine Ausnahme ausgelöst. Um die Robustheit des Programms zu erhöhen, erfassen wirtry...catch. ..-Anweisung. Code>PDOException-Ausnahme und Fehlerinformationen ausgeben und schließlich die PDO-Objektinstanz über die finally-Anweisung freigeben, da dieser Anweisungsblock unabhängig davon ausgeführt wird ob eine Ausnahme ausgelöst wird. 🎜🎜Führen Sie php -S localhost:9000 aus, um den integrierten HTTP-Server zum Testen zu starten, und greifen Sie auf http://localhost:9000/mysql/pdo.php zu im Browser, d.h. Sie können die normalen Druckergebnisse sehen: 🎜🎜Datenbank Abfrageergebnisse 🎜🎜Wir ändern die Verbindungsinformationen im obigen Code, passen beispielsweise den Passwortwert auf test an. Zu diesem Zeitpunkt wird die PDO-Ausnahme erfasst und die Fehlermeldung angezeigt gedruckt: 🎜🎜🎜🎜🎜🎜Hinweis: Fehler Die IP-Adresse in den Informationen ist die IP-Adresse im MySQL Docker-Container. Es kann ignoriert werden. Dieser Fehler wird durch ein falsches Passwort verursacht, nicht durch ein IP-Adressproblem. 🎜

Wenn Sie weitere verwandte Artikel erfahren möchten, achten Sie bitte auf die Spalte php mysql!

Das obige ist der detaillierte Inhalt vonInteraktion mit der MySQL-Datenbank über die PDO-Erweiterung, um eine grundlegende Verwendung zu erreichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:xueyuanjun.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage