mysql数据抽象层-PDO
作者 : admin 于 2009-08-20 16:02:02
2009
08-20
08-20
好久不用PDO了,公司这边有的项目使用PDO,再熟悉一下,继续沿用之前的方法:
没用数据绑定和一些高级的功能,只是实现基础功能。
- < ?php
- interface DateBaseConnect
- {
- #数据库连接
- public function Connect( $host , $user , $pass , $datebase );
- #使用数据库
- public function selectDateBase( $datebase );
- #执行一个查询
- public function query( $sql );
- #取得一行
- public function fetch( $sql );
- #取得所有
- public function fetchAll( $sql );
- #取得影响行数
- public function affectedRow();
- #取得结果行数
- public function recordCount();
- #取得上次插入ID
- public function insertID();
- #释放资源
- public function close();
- }
- class sPDO implements DateBaseConnect
- {
- #连接标识
- public $handle = false;
- #结果标识
- public $query;
- #查询次数
- public $exetime;
- #影响行数
- public $affectedRows;
- #statement
- public $statement;
- #数据库连接
- public function Connect( $host , $user , $pass , $datebase )
- {
- try
- {
- $this->handle = new PDO("mysql:dbname=".$datebase.";host=".$host, $user, $pass);
- }
- catch (PDOException $e)
- {
- echo 'Connection failed: ' . $e->getMessage();
- }
- $this->exetime = 0;
- }
- #选择数据库
- public function selectDateBase( $database )
- {
- return true;
- }
- #执行一个查询
- public function query( $sql )
- {
- $this->affectedRows = $this->handle->exec( $sql );
- $this->exetime++;
- return true;
- }
- #取得一行
- public function fetch( $sql )
- {
- $this->statement = $this->handle->query( $sql );
- return $this->statement->fetch(PDO::FETCH_ASSOC);
- }
- #取得所有
- public function fetchAll( $sql )
- {
- $this->statement = $this->handle->query( $sql );
- return $this->statement->fetchAll(PDO::FETCH_ASSOC);
- }
- #取得影响行数
- public function affectedRow()
- {
- return $this->affectedRows;
- }
- #取得结果行数
- public function recordCount()
- {
- return $this->statement->rowCount();
- }
- #取得上次插入ID
- public function insertID()
- {
- $sql = sprintf("SELECT LAST_INSERT_ID() AS id");
- $pdostatement = $this->handle->query( $sql );
- $rs = $pdostatement->fetch();
- return $rs['id'];
- }
- #释放资源
- public function close()
- {
- unset($this->handle);
- }
- #析构函数
- function __destruct()
- {
- $this->close();
- }
- }
- #Demo
- $db = new sPDO;
- $db->Connect( 'localhost' , 'root' , '123456' , 'ucenterhome' );
- $rs = $db->fetchAll( "SELECT * FROM uchome_blogfield" );
- print_r( $rs );
- ?>