好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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 ; //开源代码phpfensi.com       }         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操作类.

查看更多关于PDO的mysql数据库操作类 - php类库的详细内容...

  阅读:38次