http://www.oschina.net/code/snippet_155355_4844


/**
 * 数据库操作类
 * @author 角度 QQ:1286522207
 *
 */

class db {
public $data_Default;
private $DB_HOST;
private $DB_NAME;
private $DB_USER;
private $DB_PWD;
private $DB_PREFIX;
private $DB_CHARSET;
public $Limit = " LIMIT 1";
public $OrderBy;
public $and;
public $dbname;
protected $sign = array ('=', '<>', '>', '<', '>=', '<=' );
function __construct($db) {
$dbmysql = include ROOT_CONFIG . 'db.php';
$dbconfig = $dbmysql [$db];
$this->DB_HOST = $dbconfig['DB_HOST'];
$this->DB_NAME = $dbconfig['DB_NAME'];
$this->DB_USER = $dbconfig['DB_USER'];
$this->DB_PWD = $dbconfig['DB_PWD'];
$this->DB_PREFIX = $dbconfig['DB_PREFIX'];
$this->DB_CHARSET = $dbconfig['DB_CHARSET'];
}
private function pdo_db() {
try {
return new PDO ( "mysql:host=$this->DB_HOST;dbname=$this->DB_NAME", $this->DB_USER, $this->DB_PWD, array (PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES '$this->DB_CHARSET'", PDO::ATTR_PERSISTENT => true ) );
} catch ( Exception $e ) {
echo '数据库连接失败,详情: ' . $e->getMessage () . ' 请在/config/db.php中配制正确的数据库连接信息';
exit ();
}

}
public function M($name) {
$this->dbname = $this->DB_PREFIX . $name;
}
/**
* 处理条件
*/
public function where($where) {
if (! $this->and)
$this->and = ' and';
if (is_array ( $where )) {
foreach ( $where as $key => $row ) {
$w [] = " `$key`='$row'";
}
$sql = " WHERE (" . trim ( implode ( $this->and, $w ) ) . ") ";
} elseif (! $where) {
return false;
} else {
$sql = " WHERE " . $where;
}
return $sql;
}
/**
* 处理数据
*/
private function date($date) {
if (is_array ( $date )) {
foreach ( $date as $key => $row ) {
$d [] = "`" . $key . "`='" . $row . "'";
}
return implode ( ',', $d );
} else {
return $date;
}
}
/**
* 处理插入数据
*/
public function Upvalues($date) {
if (is_array ( $date )) {
foreach ( $date as $key => $row ) {
$k [] = "`" . $key . "`";
$r [] = "'" . $row . "'";
}
$k = "(" . implode ( ',', $k ) . ")";
$r = "(" . implode ( ',', $r ) . ")";
return $k . ' VALUES ' . $r;
} else {
return false;
}
}
/**
* 排序
* @param 列 $Row
* @param ASC or DESC$ORDER
*/
public function OrderBy($Row = '', $ORDER = 'DESC') {
$this->OrderBy = "ORDER BY `$Row` $ORDER";
}
/**
* 执行查询语句 SELECT
*/
public function query($sql) {
return empty ( $sql ) ? exit ( '必须指定SQL语句' ) : $this->pdo_db ()->query ( $sql );
}
/**
* 执行 INSERT、UPDATE、DELETE
*/
public function exec($sql) {
return empty ( $sql ) ? exit ( '必须指定SQL语句' ) : $this->pdo_db ()->exec ( $sql );
}
/**
* 查询个数
*/
public function Limit($a = NULL, $b = NULL) {
$this->Limit = Filter::IntegerFilter ( $a ) && Filter::IntegerFilter ( $b ) ? " LIMIT $a,$b" : '';
}
/**
* 处理多个查询条件

*/
public function LIKEMultipleQueries($LIKE, $W) {
$LIKE = array_filter ( explode ( ' ', trim ( $LIKE ) ) );
if (is_array ( $LIKE )) {
foreach ( $LIKE as $row ) {
$l [] = "`$W` LIKE  '%" . trim ( $row ) . "%'";
}
return '(' . implode ( ' OR ', $l ) . ')';
}
}
/**
* 点亮关键字
*/
public $SearchLightKey = array ();
public function SearchLightKey($array, $q) {
foreach ( $array as $s ) {
foreach ( $q as $key => $row ) {
$row = array_filter ( explode ( ' ', trim ( $row ) ) );
if ($s [$key]) {
foreach ( $row as $r ) {
$s [$key] = preg_replace ( "/(" . trim ( $r ) . ")/i", "<font style='color: #FF9900'>\\1</font>", $s [$key] );
}
}
}
$this->SearchLightKey [] = $s;
}
}
/**快捷操作开始**/
/**
* 查询一条数据
*/
public function find($where, $Row = '*') {
$sql = "SELECT $Row FROM `$this->dbname` " . $this->where ( $where ) . $this->OrderBy . $this->Limit;
return $this->pdo_db ()->query ( $sql )->fetch ();
}
/**
* 查询多条数据
*/
public function findAll($where, $Row = '*') {
$sql = "SELECT $Row FROM `$this->dbname` " . $this->where ( $where ) . $this->OrderBy . $this->Limit;
return $this->pdo_db ()->query ( $sql )->fetchAll ();
}
/**
* 查询总数
*/
public function findsum($where, $Row) {
$sql = "SELECT SUM($Row) as $Row FROM `$this->dbname` " . $this->where ( $where ) . " LIMIT 1";
return $this->pdo_db ()->query ( $sql )->fetch ();
}
/**
* 查询个数
*/
public function findcount($where, $Row) {
$sql = "SELECT COUNT($Row) as $Row FROM `$this->dbname` " . $this->where ( $where ) . " LIMIT 1 ";
return $this->pdo_db ()->query ( $sql )->fetch ();
}
/**
* 更新数据
*/
public function update($date, $where) {
$sql = "UPDATE `$this->dbname` SET " . $this->date ( $date ) . $this->where ( $where ) . ";";
return $this->pdo_db ()->exec ( $sql );
}
/**
* 插入数据
*/
public function insert($date) {
$sql = "INSERT INTO `$this->dbname` " . $this->Upvalues ( $date ) . ";";
$pdo = $this->pdo_db ();
return $pdo->exec ( $sql ) ? $pdo->lastInsertId () : false;
}
/**
* 删除数据
*/
public function delete($where) {
$sql = "DELETE FROM `$this->dbname` " . $this->where ( $where ) . $this->Limit . ";";
return $this->pdo_db ()->exec ( $sql );
}
}