龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

实用PDO MYSQL数库操作类

时间:2014-07-22 14:52来源: 作者: 点击:
分享到:
刚刚写的,还有待完善br / 配制br / div ?php/div div /*配制*//div div div return array ( /div div DB_Default=Default,//默认连接 /div div /* 主数据 */ /div div Default = /div div array ( /div div DB_HOST = 127.0.0.1, // 服务
刚刚写的,还有待完善
配制
<?php
/*配制*/
return array (
'DB_Default'=>'Default',//默认连接
/* 主数据 */
'Default' => 
array (
'DB_HOST' => '127.0.0.1', // 服务器地址
'DB_NAME' => '8now_invoicing', // 数据库名
'DB_USER' => 'root', // 用户名
'DB_PWD' => '', // 密码
'DB_PREFIX' => '8now_', // 数据库表前缀
'DB_CHARSET' => 'utf8' ), // 数据库编码默认采用utf8
);


<?php
/**
 * 数据库操作类
 * @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 );
	}
}
精彩图集

赞助商链接