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

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

dbconfig类负责配置数据库访问信息

,包括:服务器地址、端口、数据库实例名、用户名用户密码、字符集等.

dbtemplate类集合了对数据库的访问操作

,主要有以下几个操作:

1. queryrows:返回多行记录

2. queryrow:返回为单条记录

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

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

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

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

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

具体代码如下:

代码如下:
/**

  • @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;
    }

/**

/**

  • 设置数据库编码
  • @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);
    if (count($rs) > 0) {
    return intval($rs[0][0]);
    } else {
    return null;
    }
    }

/**

  • 查询单字段,返回浮点数(float)
  • @param $sql
  • @param $parameters
  • @return
    */
    public function queryforfloat($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);
    if (count($rs) > 0) {
    return doubleval($rs[0][0]);
    } else {
    return null;
    }
    }

/**

  • 查询单字段,返回对象,实际类型有数据库决定
  • @param $sql
  • @param $parameters
  • @return
    */
    public function queryforobject($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程序设计有所帮助。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...