七零部落格
思则大道至简,疑则谜团重重!
思则大道至简,疑则谜团重重!
<?php class DB extends PDO { public function __construct($host, $username, $password, $database, $port = '3306', $charset = 'UTF8') { $driverOptions = array ( PDO::ATTR_PERSISTENT => true, PDO::ATTR_CASE => PDO::CASE_LOWER, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8", PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ); if ($host) { $dsn = 'mysql:host=' . $host . ';dbname=' . $database . ';charset=' . $charset . ';port=' . $port . ''; } else { $dsn = 'odbc:driver={microsoft access driver (*.mdb)};dbq=' . realpath ( $database ) . ';PWD=' . $password; } try { return parent::__construct ( $dsn, $username, $password, $driverOptions ); } catch ( PDOException $e ) { echo $e->getMessage (); } } public function fetchAll($query, $parameters = array(), $type = PDO::FETCH_ASSOC) { $rs = $this->prepareAndExecute ( $query, $parameters ); $rows = $rs->fetchAll ( $type ); $rs->closeCursor (); unset ( $rs ); return $rows; } public function fetchRow($query, $parameters = array(), $type = PDO::FETCH_ASSOC) { $rs = $this->prepareAndExecute ( $query, $parameters ); $row = $rs->fetch ( $type ); $rs->closeCursor (); unset ( $rs ); return $row; } public function fetchValue($query, $parameters = array()) { return $this->fetchRowValue ( $query, $parameters, 0 ); } public function fetchRowValue($query, $parameters = array(), $column = 0) { $rs = $this->prepareAndExecute ( $query, $parameters ); $row = $rs->fetchColumn ( $column ); $rs->closeCursor (); unset ( $rs ); return $row; } public function update($query, $parameters) { $rs = $this->prepareAndExecute ( $query, $parameters ); return $rs->rowCount (); } public function insert($query, $parameters = array()) { $rs = $this->prepareAndExecute ( $query, $parameters ); return $this->lastInsertId (); } public function prepareAndExecute($query, $parameters = array()) { $rs = $this->prepare ( $query ); $rs->execute ( $parameters ); return $rs; } } $Mysql = new DB ( 'localhost', 'root', '123456', 'wordpress' ); $Access = new DB ( false, false, '1234567890', 'content.mdb' ); var_dump ( $Mysql->getAttribute ( PDO::ATTR_DRIVER_NAME ) ); echo '<hr />';//py by http://my.oschina.net/cart/ var_dump ( $Access->getAttribute ( PDO::ATTR_DRIVER_NAME ) );