Maison  >  Article  >  développement back-end  >  Comment utiliser le PDO de PHP pour encapsuler des classes de base de données hautement exploitables

Comment utiliser le PDO de PHP pour encapsuler des classes de base de données hautement exploitables

PHPz
PHPzoriginal
2024-02-26 12:18:061177parcourir

Comment utiliser le PDO de PHP pour encapsuler des classes de base de données hautement exploitables

Comment PHP utilise PDO pour encapsuler des classes de base de données simples et faciles à utiliser

Introduction :
Dans le développement PHP, la base de données est une partie très importante. Afin de mieux exploiter la base de données, nous pouvons utiliser l'extension PDO (PHP Data Objects) pour connecter, interroger et exploiter la base de données. Cet article explique comment utiliser PDO pour encapsuler une classe de base de données simple et facile à utiliser afin de permettre aux développeurs d'effectuer des opérations de base de données.

1. Créer une classe DB
Tout d'abord, nous créons une classe DB, qui encapsulera les méthodes de fonctionnement de base de données couramment utilisées. Le code est le suivant :

class DB
{
    private $pdo;  // pdo对象

    public function __construct($host, $dbname, $username, $password)
    {
        $dsn = "mysql:host=$host;dbname=$dbname;charset=utf8mb4";
        $options = array(
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        );
        $this->pdo = new PDO($dsn, $username, $password, $options);
    }

    public function query($sql, $params = [])
    {
        $stmt = $this->pdo->prepare($sql);
        $stmt->execute($params);
        return $stmt;
    }

    public function fetchAll($sql, $params = [])
    {
        $stmt = $this->query($sql, $params);
        return $stmt->fetchAll();
    }

    public function fetch($sql, $params = [])
    {
        $stmt = $this->query($sql, $params);
        return $stmt->fetch();
    }

    public function insert($table, $data)
    {
        $columns = implode(', ', array_keys($data));
        $values = ':' . implode(', :', array_keys($data));
        $sql = "INSERT INTO $table ($columns) VALUES ($values)";
        $this->query($sql, $data);
    }

    public function update($table, $data, $where = [])
    {
        $set = '';
        foreach ($data as $key => $value) {
            $set .= "$key = :$key, ";
        }
        $set = rtrim($set, ', ');
        $whereClause = '';
        foreach ($where as $key => $value) {
            $whereClause .= "$key = :$key AND ";
        }
        $whereClause = rtrim($whereClause, ' AND ');
        $sql = "UPDATE $table SET $set WHERE $whereClause";
        $this->query($sql, array_merge($data, $where));
    }

    public function delete($table, $where)
    {
        $whereClause = '';
        foreach ($where as $key => $value) {
            $whereClause .= "$key = :$key AND ";
        }
        $whereClause = rtrim($whereClause, ' AND ');
        $sql = "DELETE FROM $table WHERE $whereClause";
        $this->query($sql, $where);
    }
}

2. Utilisez la classe DB
Ensuite, nous montrerons comment utiliser la classe DB qui vient d'être encapsulée pour effectuer des opérations de base de données. Tout d’abord, nous devons créer une instance de base de données, puis nous pouvons utiliser l’instance pour effectuer des opérations telles que requête, fetchAll, récupération, insertion, mise à jour et suppression.

// 创建数据库实例
$db = new DB('localhost', 'mydatabase', 'username', 'password');

// 查询操作
$result = $db->fetchAll("SELECT * FROM users");
foreach ($result as $row) {
    echo $row['name'];
}
echo "<br>";

// 插入操作
$db->insert("users", [
    'name' => 'Tom',
    'age' => 20
]);

// 更新操作
$db->update("users", [
    'age' => 21
], [
    'name' => 'Tom'
]);

// 删除操作
$db->delete("users", [
    'name' => 'Tom'
]);

3. Résumé
Grâce à l'encapsulation ci-dessus, nous pouvons simplifier les opérations de base de données et rendre le code plus lisible et plus facile à utiliser. La classe DB fournit l'encapsulation des opérations de requête, d'insertion, de mise à jour et de suppression couramment utilisées, améliorant ainsi considérablement l'efficacité du développement.

Ce qui précède est une introduction sur la façon d'utiliser PDO pour encapsuler une classe DB simple et facile à utiliser. J'espère que cela aide.

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:
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