欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

实用PDO MYSQL数库操作类

程序员文章站 2022-05-13 19:20: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 );
    }
}

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