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类库的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did29481