Home php教程 php手册 PHP实现PDO的mysql数据库操作类

PHP实现PDO的mysql数据库操作类

Jun 06, 2016 pm 08:15 PM
mysql pdo php database

这篇文章主要介绍了PHP实现PDO的mysql数据库操作类,其中dbconfig类负责配置数据库访问信息,dbtemplate类集合了对数据库的访问操作,非常具有实用价值,需要的朋友

本文实例讲述了PHP实现PDO的mysql数据库操作类。分享给大家供大家参考。具体分析如下:

dbconfig类负责配置数据库访问信息,包括:服务器地址、端口、数据库实例名、用户名、用户密码、字符集等.

dbtemplate类集合了对数据库的访问操作,主要有以下几个操作:

1. queryrows:返回多行记录

2. queryrow:返回为单条记录

3. queryforint:查询单字段,返回整数

4. queryforfloat:查询单字段,返回浮点数(float)

5. queryfordouble:查询单字段,返回浮点数(double)

6. queryforobject:查询单字段,返回对象,实际类型有数据库决定

7. update : 执行一条更新语句. insert / upadate / delete

具体代码如下:

复制代码 代码如下:

class dbconfig {
    private static $dbms = "mysql";
    private static $host = '127.0.0.1';
    private static $port = '3306';
    private static $username = '';
    private static $password = '';
    private static $dbname = '';
    private static $charset = 'utf-8';
    private static $dsn;
 
    /**
     *
     * @return   返回pdo dsn配置
     */
    public static function getdsn() {
        if (!isset(self::$dsn)) {
            self::$dsn = self::$dbms . ':host=' . self::$host . ';port=' .
                    self::$port . ';dbname=' . self::$dbname;
            if (strlen(self::$charset) > 0) {
                self::$dsn = self::$dsn . ';charset=' . self::$charset;
            }
        }
        return self::$dsn;
    }
 
    /**
     * 设置mysql数据库服务器主机
     * @param  $host 主机的ip地址
     */
    public static function sethost($host) {
        if (isset($host) && strlen($host) > 0)
            self::$host = trim($host);
    }
 
    /**
     * 设置mysql数据库服务器的端口
     * @param  $port 端口
     */
    public static function setport($port) {
        if (isset($port) && strlen($port) > 0)
            self::$port = trim($port);
    }
 
    /**
     * 设置mysql数据库服务器的登陆用户名
     * @param  $username
     */
    public static function setusername($username) {
        if (isset($username) && strlen($username) > 0)
            self::$username = $username;
    }
 
    /**
     * 设置mysql数据库服务器的登陆密码
     * @param  $password
     */
    public static function setpassword($password) {
        if (isset($password) && strlen($password) > 0)
            self::$password = $password;
    }
 
    /**
     * 设置mysql数据库服务器的数据库实例名
     * @param  $dbname 数据库实例名
     */
    public static function setdbname($dbname) {
        if (isset($dbname) && strlen($dbname) > 0)
            self::$dbname = $dbname;
    }
 
    /**
     * 设置数据库编码
     * @param  $charset
     */
    public static function setcharset($charset) {
        if (isset($charset) && strlen($charset) > 0)
            self::$charset = $charset;
    }
 
}
 
/**
 * 一个数据库操作工具类
 *
 * @author zhjiun@gmail.com 
 */
class dbtemplate {
 
    /**
     * 返回多行记录
     * @param  $sql
     * @param  $parameters
     * @return  记录数据
     */
    public function queryrows($sql, $parameters = null) {
        return $this->exequery($sql, $parameters);
    }
 
    /**
     * 返回为单条记录
     * @param  $sql
     * @param  $parameters
     * @return
     */
    public function queryrow($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return $rs[0];
        } else {
            return null;
        }
    }
 
    /**
     * 查询单字段,返回整数
     * @param  $sql
     * @param  $parameters
     * @return
     */
    public function queryforint($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return intval($rs[0][0]);
        } else {
            return null;
        }
    }
 
    /**
     * 查询单字段,返回浮点数(float)
     * @param  $sql
     * @param  $parameters
     * @return
     */
    public function queryforfloat($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return floatval($rs[0][0]);
        } else {
            return null;
        }
    }
 
    /**
     * 查询单字段,返回浮点数(double)
     * @param  $sql
     * @param  $parameters
     * @return
     */
    public function queryfordouble($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return doubleval($rs[0][0]);
        } else {
            return null;
        }
    }
 
    /**
     * 查询单字段,返回对象,实际类型有数据库决定
     * @param  $sql
     * @param  $parameters
     * @return
     */
    public function queryforobject($sql, $parameters = null) {
        $rs = $this->exequery($sql, $parameters);
        if (count($rs) > 0) {
            return $rs[0][0];
        } else {
            return null;
        }
    }
 
    /**
     * 执行一条更新语句.insert / upadate / delete
     * @param  $sql
     * @param  $parameters
     * @return  影响行数
     */
    public function update($sql, $parameters = null) {
        return $this->exeupdate($sql, $parameters);
    }
 
    private function getconnection() {
        $conn = new pdo(dbconfig::getdsn(), dbconfig::getusername(), dbconfig::getpassword());
        $conn->setattribute(pdo::attr_case, pdo::case_upper);
        return $conn;
    }
 
    private function exequery($sql, $parameters = null) {
        $conn = $this->getconnection();
        $stmt = $conn->prepare($sql);
        $stmt->execute($parameters);
        $rs = $stmt->fetchall();
        $stmt = null;
        $conn = null;
        return $rs;
    }
 
    private function exeupdate($sql, $parameters = null) {
        $conn = $this->getconnection();
        $stmt = $conn->prepare($sql);
        $stmt->execute($parameters);
        $affectedrows = $stmt->rowcount();
        $stmt = null;
        $conn = null;
        return $affectedrows;
    }
}


pdo始于php5,php6中将默认使用pdo,不同于以前版本中混乱的数据库操作方式,pdo统一了对数据库的访问方式,给编程带来了极大的便利性,本工具类就是基于pdo,模拟了java世界spring框架中的jdbctemplate操作类.

希望本文所述对大家的PHP程序设计有所帮助。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1664
14
PHP Tutorial
1268
29
C# Tutorial
1248
24
Explain the purpose of foreign keys in MySQL. Explain the purpose of foreign keys in MySQL. Apr 25, 2025 am 12:17 AM

In MySQL, the function of foreign keys is to establish the relationship between tables and ensure the consistency and integrity of the data. Foreign keys maintain the effectiveness of data through reference integrity checks and cascading operations. Pay attention to performance optimization and avoid common errors when using them.

Compare and contrast MySQL and MariaDB. Compare and contrast MySQL and MariaDB. Apr 26, 2025 am 12:08 AM

The main difference between MySQL and MariaDB is performance, functionality and license: 1. MySQL is developed by Oracle, and MariaDB is its fork. 2. MariaDB may perform better in high load environments. 3.MariaDB provides more storage engines and functions. 4.MySQL adopts a dual license, and MariaDB is completely open source. The existing infrastructure, performance requirements, functional requirements and license costs should be taken into account when choosing.

What happens if session_start() is called multiple times? What happens if session_start() is called multiple times? Apr 25, 2025 am 12:06 AM

Multiple calls to session_start() will result in warning messages and possible data overwrites. 1) PHP will issue a warning, prompting that the session has been started. 2) It may cause unexpected overwriting of session data. 3) Use session_status() to check the session status to avoid repeated calls.

Redis: Understanding Its Architecture and Purpose Redis: Understanding Its Architecture and Purpose Apr 26, 2025 am 12:11 AM

Redis is a memory data structure storage system, mainly used as a database, cache and message broker. Its core features include single-threaded model, I/O multiplexing, persistence mechanism, replication and clustering functions. Redis is commonly used in practical applications for caching, session storage, and message queues. It can significantly improve its performance by selecting the right data structure, using pipelines and transactions, and monitoring and tuning.

Composer: Aiding PHP Development Through AI Composer: Aiding PHP Development Through AI Apr 29, 2025 am 12:27 AM

AI can help optimize the use of Composer. Specific methods include: 1. Dependency management optimization: AI analyzes dependencies, recommends the best version combination, and reduces conflicts. 2. Automated code generation: AI generates composer.json files that conform to best practices. 3. Improve code quality: AI detects potential problems, provides optimization suggestions, and improves code quality. These methods are implemented through machine learning and natural language processing technologies to help developers improve efficiency and code quality.

MySQL: The Database, phpMyAdmin: The Management Interface MySQL: The Database, phpMyAdmin: The Management Interface Apr 29, 2025 am 12:44 AM

MySQL and phpMyAdmin can be effectively managed through the following steps: 1. Create and delete database: Just click in phpMyAdmin to complete. 2. Manage tables: You can create tables, modify structures, and add indexes. 3. Data operation: Supports inserting, updating, deleting data and executing SQL queries. 4. Import and export data: Supports SQL, CSV, XML and other formats. 5. Optimization and monitoring: Use the OPTIMIZETABLE command to optimize tables and use query analyzers and monitoring tools to solve performance problems.

MongoDB's Future: The State of the Database MongoDB's Future: The State of the Database Apr 25, 2025 am 12:21 AM

MongoDB's future is full of possibilities: 1. The development of cloud-native databases, 2. The fields of artificial intelligence and big data are focused, 3. The improvement of security and compliance. MongoDB continues to advance and make breakthroughs in technological innovation, market position and future development direction.

What is the significance of the session_start() function? What is the significance of the session_start() function? May 03, 2025 am 12:18 AM

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.

See all articles