当前位置:首页php > 正文

php中的pdo数据库操作类

作者:野牛程序员:2024-01-31 18:22:57php阅读 2714

PDO(PHP Data Objects)是PHP中用于访问数据库的一种方法,它提供了一个轻量级、一致的接口来与不同的数据库进行交互。以下是一个简单的PDO数据库操作类的示例:

class Database {
    private $host;
    private $username;
    private $password;
    private $database;
    private $dsn;
    private $pdo;

    public function __construct($host, $username, $password, $database) {
        $this->host = $host;
        $this->username = $username;
        $this->password = $password;
        $this->database = $database;
        $this->dsn = "mysql:host=$host;dbname=$database";
        $this->connect();
    }

    private function connect() {
        try {
            $this->pdo = new PDO($this->dsn, $this->username, $this->password);
            // 设置PDO错误模式为异常
            $this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            die("Connection failed: " . $e->getMessage());
        }
    }

    public function query($sql, $params = []) {
        try {
            $stmt = $this->pdo->prepare($sql);
            $stmt->execute($params);
            return $stmt;
        } catch (PDOException $e) {
            die("Query failed: " . $e->getMessage());
        }
    }

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

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

    public function getLastInsertId() {
        return $this->pdo->lastInsertId();
    }
}

使用该类可以执行数据库操作,例如:

// 实例化数据库对象
$db = new Database('localhost', 'username', 'password', 'database_name');

// 执行查询并获取所有结果
$results = $db->fetchAll("SELECT * FROM table_name");

// 执行查询并获取单个结果
$result = $db->fetchOne("SELECT * FROM table_name WHERE id = ?", [1]);

// 执行插入操作
$db->query("INSERT INTO table_name (column1, column2) VALUES (?, ?)", ['value1', 'value2']);

// 获取最后插入的ID
$lastInsertId = $db->getLastInsertId();

这是一个简单的PDO数据库操作类,可以根据自己的需求进行扩展和定制。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击