加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 02:15:59 所属栏目:PHP教程 来源:网络整理
导读:《PHP实现PDO的mysql数据库操作类》要点: 本文介绍了PHP实现PDO的mysql数据库操作类,希望对您有用。如果有疑问,可以联系我们。 本篇章节讲解PHP实现PDO的mysql数据库操作类.供大家参考研究.具体分析如下: PHP编程 dbconfig类负责配置数据库访问

《PHP实现PDO的mysql数据库操作类》要点:
本文介绍了PHP实现PDO的mysql数据库操作类,希望对您有用。如果有疑问,可以联系我们。

本篇章节讲解PHP实现PDO的mysql数据库操作类.分享给大家供大家参考.具体分析如下:PHP编程

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

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

1. queryrows:返回多行记录PHP编程

2. queryrow:返回为单条记录PHP编程

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

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

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

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

7. update : 执行一条更新语句. insert / upadate / deletePHP编程

具体代码如下:
PHP编程

代码如下:
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);
??????? 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程序设计有所帮助.PHP编程

欢迎参与《PHP实现PDO的mysql数据库操作类》讨论,分享您的想法,编程之家 52php.cn为您提供专业教程。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读