VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • PHP实现PDO的mysql数据库操作类

这篇文章主要介绍了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

具体代码如下:

  1. class dbconfig { 
  2.     private static $dbms = "mysql"; 
  3.     private static $host = '127.0.0.1'; 
  4.     private static $port = '3306'; 
  5.     private static $username = ''; 
  6.     private static $password = ''; 
  7.     private static $dbname = ''; 
  8.     private static $charset = 'utf-8'; 
  9.     private static $dsn; 
  10.  
  11.     /** 
  12.      * 
  13.      * @return   返回pdo dsn配置 
  14.      */ 
  15.     public static function getdsn() { 
  16.         if (!isset(self::$dsn)) { 
  17.             self::$dsn = self::$dbms . ':host=' . self::$host . ';port=' . 
  18.                     self::$port . ';dbname=' . self::$dbname; 
  19.             if (strlen(self::$charset) > 0) { 
  20.                 self::$dsn = self::$dsn . ';charset=' . self::$charset; 
  21.             } 
  22.         } 
  23.         return self::$dsn; 
  24.     } 
  25.  
  26.     /** 
  27.      * 设置mysql数据库服务器主机 
  28.      * @param  $host 主机的ip地址 
  29.      */ 
  30.     public static function sethost($host) { 
  31.         if (isset($host) && strlen($host) > 0) 
  32.             self::$host = trim($host); 
  33.     } 
  34.  
  35.     /** 
  36.      * 设置mysql数据库服务器的端口 
  37.      * @param  $port 端口 
  38.      */ 
  39.     public static function setport($port) { 
  40.         if (isset($port) && strlen($port) > 0) 
  41.             self::$port = trim($port); 
  42.     } 
  43.  
  44.     /** 
  45.      * 设置mysql数据库服务器的登陆用户名 
  46.      * @param  $username 
  47.      */ 
  48.     public static function setusername($username) { 
  49.         if (isset($username) && strlen($username) > 0) 
  50.             self::$username = $username; 
  51.     } 
  52.  
  53.     /** 
  54.      * 设置mysql数据库服务器的登陆密码 
  55.      * @param  $password 
  56.      */ 
  57.     public static function setpassword($password) { 
  58.         if (isset($password) && strlen($password) > 0) 
  59.             self::$password = $password; 
  60.     } 
  61.  
  62.     /** 
  63.      * 设置mysql数据库服务器的数据库实例名 
  64.      * @param  $dbname 数据库实例名 
  65.      */ 
  66.     public static function setdbname($dbname) { 
  67.         if (isset($dbname) && strlen($dbname) > 0) 
  68.             self::$dbname = $dbname; 
  69.     } 
  70.  
  71.     /** 
  72.      * 设置数据库编码 
  73.      * @param  $charset 
  74.      */ 
  75.     public static function setcharset($charset) { 
  76.         if (isset($charset) && strlen($charset) > 0) 
  77.             self::$charset = $charset; 
  78.     } 
  79.  
  80. } 
  81.  
  82. /** 
  83.  * 一个数据库操作工具类 
  84.  * 
  85.  * @author zhjiun@gmail.com  
  86.  */ 
  87. class dbtemplate { 
  88.  
  89.     /** 
  90.      * 返回多行记录 
  91.      * @param  $sql 
  92.      * @param  $parameters 
  93.      * @return  记录数据 
  94.      */ 
  95.     public function queryrows($sql, $parameters = null) { 
  96.         return $this->exequery($sql, $parameters); 
  97.     } 
  98.  
  99.     /** 
  100.      * 返回为单条记录 
  101.      * @param  $sql 
  102.      * @param  $parameters 
  103.      * @return 
  104.      */ 
  105.     public function queryrow($sql, $parameters = null) { 
  106.         $rs = $this->exequery($sql, $parameters); 
  107.         if (count($rs) > 0) { 
  108.             return $rs[0]; 
  109.         } else { 
  110.             return null; 
  111.         } 
  112.     } 
  113.  
  114.     /** 
  115.      * 查询单字段,返回整数 
  116.      * @param  $sql 
  117.      * @param  $parameters 
  118.      * @return 
  119.      */ 
  120.     public function queryforint($sql, $parameters = null) { 
  121.         $rs = $this->exequery($sql, $parameters); 
  122.         if (count($rs) > 0) { 
  123.             return intval($rs[0][0]); 
  124.         } else { 
  125.             return null; 
  126.         } 
  127.     } 
  128.  
  129.     /** 
  130.      * 查询单字段,返回浮点数(float) 
  131.      * @param  $sql 
  132.      * @param  $parameters 
  133.      * @return 
  134.      */ 
  135.     public function queryforfloat($sql, $parameters = null) { 
  136.         $rs = $this->exequery($sql, $parameters); 
  137.         if (count($rs) > 0) { 
  138.             return floatval($rs[0][0]); 
  139.         } else { 
  140.             return null; 
  141.         } 
  142.     } 
  143.  
  144.     /** 
  145.      * 查询单字段,返回浮点数(double) 
  146.      * @param  $sql 
  147.      * @param  $parameters 
  148.      * @return 
  149.      */ 
  150.     public function queryfordouble($sql, $parameters = null) { 
  151.         $rs = $this->exequery($sql, $parameters); 
  152.         if (count($rs) > 0) { 
  153.             return doubleval($rs[0][0]); 
  154.         } else { 
  155.             return null; 
  156.         } 
  157.     } 
  158.  
  159.     /** 
  160.      * 查询单字段,返回对象,实际类型有数据库决定 
  161.      * @param  $sql 
  162.      * @param  $parameters 
  163.      * @return 
  164.      */ 
  165.     public function queryforobject($sql, $parameters = null) { 
  166.         $rs = $this->exequery($sql, $parameters); 
  167.         if (count($rs) > 0) { 
  168.             return $rs[0][0]; 
  169.         } else { 
  170.             return null; 
  171.         } 
  172.     } 
  173.  
  174.     /** 
  175.      * 执行一条更新语句.insert / upadate / delete 
  176.      * @param  $sql 
  177.      * @param  $parameters 
  178.      * @return  影响行数 
  179.      */ 
  180.     public function update($sql, $parameters = null) { 
  181.         return $this->exeupdate($sql, $parameters); 
  182.     } 
  183.  
  184.     private function getconnection() { 
  185.         $conn = new pdo(dbconfig::getdsn(), dbconfig::getusername(), dbconfig::getpassword()); 
  186.         $conn->setattribute(pdo::attr_case, pdo::case_upper); 
  187.         return $conn; 
  188.     } 
  189.  
  190.     private function exequery($sql, $parameters = null) { 
  191.         $conn = $this->getconnection(); 
  192.         $stmt = $conn->prepare($sql); 
  193.         $stmt->execute($parameters); 
  194.         $rs = $stmt->fetchall(); 
  195.         $stmt = null; 
  196.         $conn = null; 
  197.         return $rs; 
  198.     } 
  199.  
  200.     private function exeupdate($sql, $parameters = null) { 
  201.         $conn = $this->getconnection(); 
  202.         $stmt = $conn->prepare($sql); 
  203.         $stmt->execute($parameters); 
  204.         $affectedrows = $stmt->rowcount(); 
  205.         $stmt = null; 
  206.         $conn = null; 
  207.         return $affectedrows; 
  208.     } 
  209. } 

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

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

 



出处:http://www.phpfensi.com/php/20210503/14832.html


相关教程