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

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

 

出处:http://www.phpfensi.com/php/20140911/5352.html


相关教程