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

php 实用PDO MYSQL数库操作类

时间:2014-11-17 12:18来源:网络整理 作者:网络 点击:
分享到:
实用PDO MYSQL数库操作类 刚刚写的,还有待完善配制lt;?php/*配制*/return array (#39;DB_Default#39;=gt;#39;Default#39;,//默认连接/* 主数据 */#39;Default#39; =gt;array (#39;DB_HOST#39; =gt; #39;127.0.0.1#39;, // 服务器

刚刚写的,还有待完善

配制

<?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 );
    }
}
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接