>php教程 >PHP源码 >实用PDO MYSQL数库操作类

实用PDO MYSQL数库操作类

PHP中文网
PHP中文网원래의
2016-05-25 17:13:501219검색

配制 

<?php
/*配制*/
return array (
&#39;DB_Default&#39;=>&#39;Default&#39;,//默认连接
/* 主数据 */
&#39;Default&#39; => 
array (
&#39;DB_HOST&#39; => &#39;127.0.0.1&#39;, // 服务器地址
&#39;DB_NAME&#39; => &#39;8now_invoicing&#39;, // 数据库名
&#39;DB_USER&#39; => &#39;root&#39;, // 用户名
&#39;DB_PWD&#39; => &#39;&#39;, // 密码
&#39;DB_PREFIX&#39; => &#39;8now_&#39;, // 数据库表前缀
&#39;DB_CHARSET&#39; => &#39;utf8&#39; ), // 数据库编码默认采用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 (&#39;=&#39;, &#39;<>&#39;, &#39;>&#39;, &#39;<&#39;, &#39;>=&#39;, &#39;<=&#39; );
    function __construct($db) {
        $dbmysql = include ROOT_CONFIG . &#39;db.php&#39;;
        $dbconfig = $dbmysql [$db];
        $this->DB_HOST = $dbconfig [&#39;DB_HOST&#39;];
        $this->DB_NAME = $dbconfig [&#39;DB_NAME&#39;];
        $this->DB_USER = $dbconfig [&#39;DB_USER&#39;];
        $this->DB_PWD = $dbconfig [&#39;DB_PWD&#39;];
        $this->DB_PREFIX = $dbconfig [&#39;DB_PREFIX&#39;];
        $this->DB_CHARSET = $dbconfig [&#39;DB_CHARSET&#39;];
    }
    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 &#39;$this->DB_CHARSET&#39;",
             PDO::ATTR_PERSISTENT => true ) );
        } catch ( Exception $e ) {
            echo &#39;数据库连接失败,详情: &#39; . $e->getMessage () . &#39; 请在/config/db.php中配制正确的数据库连接信息&#39;;
            exit ();
        }
     
    }
    public function M($name) {
        $this->dbname = $this->DB_PREFIX . $name;
    }
    /**
     * 处理条件
     */
    public function where($where) {
        if (! $this->and)
            $this->and = &#39; and&#39;;
        if (is_array ( $where )) {
            foreach ( $where as $key => $row ) {
                $w [] = " `$key`=&#39;$row&#39;";
            }
            $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 . "`=&#39;" . $row . "&#39;";
            }
            return implode ( &#39;,&#39;, $d );
        } else {
            return $date;
        }
    }
    /**
     * 处理插入数据
     */
    public function Upvalues($date) {
        if (is_array ( $date )) {
            foreach ( $date as $key => $row ) {
                $k [] = "`" . $key . "`";
                $r [] = "&#39;" . $row . "&#39;";
            }
            $k = "(" . implode ( &#39;,&#39;, $k ) . ")";
            $r = "(" . implode ( &#39;,&#39;, $r ) . ")";
            return $k . &#39; VALUES &#39; . $r;
        } else {
            return false;
        }
    }
    /**
     * 排序
     * @param 列 $Row
     * @param ASC or DESC$ORDER
     */
    public function OrderBy($Row = &#39;&#39;, $ORDER = &#39;DESC&#39;) {
        $this->OrderBy = "ORDER BY `$Row` $ORDER";
    }
    /**
     * 执行查询语句 SELECT
     */
    public function query($sql) {
        return empty ( $sql ) ? exit ( &#39;必须指定SQL语句&#39; ) : $this->pdo_db ()->query ( $sql );
    }
    /**
     * 执行 INSERT、UPDATE、DELETE
     */
    public function exec($sql) {
        return empty ( $sql ) ? exit ( &#39;必须指定SQL语句&#39; ) : $this->pdo_db ()->exec ( $sql );
    }
    /**
     * 查询个数
     */
    public function Limit($a = NULL, $b = NULL) {
        $this->Limit = Filter::IntegerFilter ( $a ) && Filter::IntegerFilter ( $b ) ? " LIMIT $a,$b" : &#39;&#39;;
    }
    /**
     * 处理多个查询条件
     * 
     */
    public function LIKEMultipleQueries($LIKE, $W) {
        $LIKE = array_filter ( explode ( &#39; &#39;, trim ( $LIKE ) ) );
        if (is_array ( $LIKE )) {
            foreach ( $LIKE as $row ) {
                $l [] = "`$W` LIKE  &#39;%" . trim ( $row ) . "%&#39;";
            }
            return &#39;(&#39; . implode ( &#39; OR &#39;, $l ) . &#39;)&#39;;
        }
    }
    /**
     * 点亮关键字
     */
    public $SearchLightKey = array ();
    public function SearchLightKey($array, $q) {
        foreach ( $array as $s ) {
            foreach ( $q as $key => $row ) {
                $row = array_filter ( explode ( &#39; &#39;, trim ( $row ) ) );
                if ($s [$key]) {
                    foreach ( $row as $r ) {
                        $s [$key] = preg_replace ( "/(" . trim ( $r ) . ")/i", 
                        "<font style=&#39;color: #FF9900&#39;>\\1</font>", $s [$key] );
                    }
                }
            }
            $this->SearchLightKey [] = $s;
        }
    }
    /**快捷操作开始**/
    /**
     * 查询一条数据
     */
    public function find($where, $Row = &#39;*&#39;) {
        $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 = &#39;*&#39;) {
        $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 );
    }
}

 以上就是实用PDO MYSQL数库操作类的内容,更多相关内容请关注PHP中文网(www.php.cn)!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.