搜索
首页php教程php手册PDO的mysql数据库操作类

PDO的mysql数据库操作类

Jun 13, 2016 am 10:08 AM
mysqlpdo操作教程数据库配置

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始于php教程5,php6中将默认使用pdo。不同于以前版本中混乱的数据库操作方式,pdo统一了对数据库的访问方式,给编程带来了极大的便利性。本工具类就是基于pdo,模拟了java世界spring框架中的jdbctemplate操作类
 */

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版