Maison  >  Article  >  Les sujets  >  Interagir avec la base de données MySQL via l'extension PDO pour obtenir une utilisation de base

Interagir avec la base de données MySQL via l'extension PDO pour obtenir une utilisation de base

coldplay.xixi
coldplay.xixiavant
2020-09-08 13:49:182644parcourir

Interagir avec la base de données MySQL via l'extension PDO pour obtenir une utilisation de base

Recommandations d'apprentissage associées : tutoriel mysql, programmation php

sur In Dans ce tutoriel, je vous ai présenté comment interagir avec la base de données MySQL via l'extension Mysqli intégrée à PHP. Aujourd'hui, nous allons examiner une autre extension de base de données intégrée à PHP - PDO, dont le nom complet est PHP Data Objects, c'est-à-dire PHP. objets de données.

Introduction et installation de PDO

PDO définit une interface légère et cohérente permettant à PHP d'accéder à la base de données, il fournit donc une couche d'abstraction d'accès aux données et n'implémente lui-même aucune fonction d'interaction avec la base de données, vous devez. utilisez un pilote PDO d'une base de données spécifique pour accéder aux services de base de données. Ces pilotes de base de données spécifiques incluent MySQL, PostgreSQL, SQLite, SQL Server, Oracle, etc. Par conséquent, PDO est une extension de base de données plus standard et plus générale, et elle est complètement objet. À l'heure actuelle, PDO est devenu le composant de base pour créer une interaction avec des bases de données dans divers frameworks PHP traditionnels, y compris le framework Laravel, qui fournit également des fonctions d'accès aux bases de données basées sur des extensions PDO.

Les environnements de développement intégrés locaux PHP que nous avons précédemment recommandés intègrent tous la prise en charge des extensions PDO (voici les extensions PHP préinstallées de Laragon) :

PHP 扩展

et As vous pouvez voir, en plus de l'extension PDO, il existe également une extension de base de données spécifique correspondante pdo_mysql Ce n'est qu'avec cette extension spécifique que vous pouvez accéder à la base de données MySQL. De plus, PDO fournit une interface d'accès à la base de données unifiée, de sorte que les extensions de base de données spécifiques qui implémentent l'interface PDO peuvent accéder à la base de données exactement de la même manière. De cette manière, si l'application doit changer de base de données, il n'est pas nécessaire de reconstruire la base de données. code d'opération. Sur cette seule base, vous pouvez jeter l'extension MySQLi et adopter PDO.

Si vous avez installé Laradock, vous pouvez démarrer le conteneur workspace, puis afficher son extension PHP préinstallée. Vous pouvez voir qu'il contient une prise en charge plus spécifique du pilote de base de données PDO :

. PHP 扩展

pdo_pgsql représente le pilote de base de données PostgresSQL et pdo_sqlite représente le pilote de base de données SQLite.

Établissement de la connexion à la base de données et requête de base

Dans notre tutoriel, nous choisissons toujours d'utiliser MySQL comme exemple de démonstration.

Pour établir une connexion à la base de données via l'extension PDO, instanciez simplement l'objet PDO directement. Nous écrivons un exemple de code simple comme suit (créons un nouveau php_learning/mysql code de stockage dans le répertoire 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;
}

Lors de l'instanciation d'un objet PDO pour créer une connexion à une base de données, au moins trois paramètres de type chaîne doivent être transmis. Le premier paramètre contient des informations sur l'hôte de la base de données, telles que le type de pilote de base de données (ici mysql), l'adresse IP ( l'adresse locale est 127.0.0.1), le numéro de port (facultatif, la valeur par défaut est 3306), le nom de la base de données à connecter (test), les informations d'encodage des caractères (utf8mb4), etc. Le deuxième paramètre est le nom d'utilisateur, et le troisième Le premier paramètre est le mot de passe.

Ensuite, nous pouvons appeler la méthode de requête sur l'instance d'objet PDO $pdo pour exécuter l'instruction SQL spécifiée pour interagir avec la base de données (ajouter, supprimer, modifier, interroger), mais avant cela, nous appelons d'abord la méthode quote. Interrogez les instructions SQL pour l'échappement. La fonction de cette fonction est similaire à mysqli_escape_string.

Après l'exécution de la requête SQL, un ensemble de résultats de requête sera renvoyé, qui peut être imprimé via un parcours de boucle.

De plus, si une erreur se produit lors des opérations de connexion à la base de données et de requête via l'extension PDO, une exception sera levée Afin d'augmenter la robustesse du programme, nous capturons l'exception try...catch... via le <.> et imprimez le message d'erreur. , et enfin libérez l'instance d'objet PDO via l'instruction PDOException, car ce bloc d'instructions sera exécuté indépendamment du fait qu'une exception soit levée ou non. finally

Exécutez

pour démarrer le serveur HTTP intégré à des fins de test. Accédez à php -S localhost:9000 dans le navigateur pour voir les résultats d'impression normaux : http://localhost:9000/mysql/pdo.php

Interagir avec la base de données MySQL via lextension PDO pour obtenir une utilisation de base

. Nous modifions les informations de connexion dans le code ci-dessus, par exemple, ajustons la valeur du mot de passe à

. À ce moment, l'exception PDO sera capturée et le message d'erreur sera imprimé : test

<.>Interagir avec la base de données MySQL via lextension PDO pour obtenir une utilisation de base

Remarque : L'adresse IP dans le message d'erreur est l'adresse IP à l'intérieur du conteneur MySQL Docker. Elle peut être ignorée. Cette erreur est causée par un mot de passe erroné et non par un problème d'adresse IP.

Pour plus d'articles connexes, veuillez faire attention à la colonne php mysql !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer