zend framework DB封装类
<?php
abstract class Base_DataBase_Pdo_Abstract{
const CASE_FOLDING = 'caseFolding';
const AUTO_QUOTE_IDENTIFIERS = 'autoQuoteIdentifiers';
protected $_config = array();
protected $_connection = null;
protected $_caseFolding = PDO::CASE_NATURAL;
protected $_autoQuoteIdentifiers = true;
protected $_fetchMode = PDO::FETCH_ASSOC;
protected $_transactionLevel = 0;
protected $_curdb = null;
protected function __construct($connection = 'default'){
global $CONFIG;
$this->_curdb = $connection;
$options = array(
self::CASE_FOLDING => $this->_caseFolding,
self::AUTO_QUOTE_IDENTIFIERS => $this->_autoQuoteIdentifiers
);
$driverOptions = array();
if (array_key_exists('options', $CONFIG->database['database'])) {
foreach ((array) $CONFIG->database['database']['options'] as $key => $value) {
$options[$key] = $value;
}
}
if (array_key_exists('driver_options', $CONFIG->database['database'])) {
if (!empty($CONFIG->database['database']['driver_options'])) {
foreach ((array) $CONFIG->database['database']['driver_options'] as $key => $value) {
$driverOptions[$key] = $value;
}
}
}
$this->_config['options'] = $options;
$this->_config['driver_options'] = $driverOptions;
if (array_key_exists(self::CASE_FOLDING, $options)) {
$case = (int) $options[self::CASE_FOLDING];
switch ($case) {
case PDO::CASE_LOWER:
case PDO::CASE_UPPER:
case PDO::CASE_NATURAL:
$this->_caseFolding = $case;
break;
default:
throw new DBException('Case must be one of the following constants: '
. 'PDO::CASE_NATURAL, PDO::CASE_LOWER, PDO::CASE_UPPER');
}
}
if (array_key_exists(self::AUTO_QUOTE_IDENTIFIERS, $options)) {
$this->_autoQuoteIdentifiers = (bool) $options[self::AUTO_QUOTE_IDENTIFIERS];
}
}
protected function setdatabase($config){
if(!is_array($config)){
throw new DBException('DB exception');
}
$this->_checkRequiredOptions($config);
if (!isset($config['charset'])) {
$config['charset'] = null;
}
$this->_config = array_merge($this->_config, $config);
//设置字符集
$initCommand = "SET NAMES '" . $this->_config['charset'] . "'";
$this->_config['d