88、PHP封装MYSQL数据库操作类源码

阅读() @2018-10-29 18:16:10

平时写代码,都会涉及到数据库操作,如果不用框架的话,数据库的增、删、改、查操作要多次重复,很麻烦,所以自己封装写一个类,只要在需要数据库操作的页面引入这个类,然后就可以方便的进行调用,可以省下很多代码。

源码如下:

<?php
    header('Content-type:text/html;charset="utf-8"');
    
    class Db{
        /* 数据库相关信息 */
        static $db;
        static $host = 'localhost';//数据库地址
        static $dbname = 'photos';//数据库名
        static $username = 'photos';//数据库用户名
        static $userpwd = 'photos';//数据库密码
        /* 连接数据库 */
        static function run(){
            self::$db = new PDO('mysql:host=localhost;dbname='.self::$dbname, self::$username, self::$userpwd);
            self::$db->query('set names utf8'); 
        }
        /* 增 */
        //$tableName是数据库名,$arry是需要插入的数据,是一维关联数组
        static function add($tableName, $arry){
            $sql = 'insert into '.$tableName.' set ';
            foreach($arry as $key=>$value){
                $sql .= $key.'='."'$value',";
            }
            $sql = rtrim($sql, ',');
            self::$db->query($sql);
            return self::$db->lastInsertId();
        }
        //$tableName是数据库名,$arry是需要插入的数据,是二维关联数组
        static function addAll($tableName, $arry){
            $tmpArry = array();
            foreach($arry as $key=>$value){
                $sql = 'insert into '.$tableName.' set ';
                foreach($value as $k=>$v){
                    $sql .= $k.'='."'$v',";
                }
                $sql = rtrim($sql, ',');
                if(self::$db->query($sql)){
                    array_push($tmpArry, self::$db->lastInsertId());
                }
            }
            return $tmpArry;
            
        }
        /* 删 */
        // //$tableName是数据库名,$arry是where条件,$status是状态(or、and)
        static function delete($tableName, $arry, $status=0){
            $sql = 'delete from '.$tableName. ' where ';
            if($status==1){
                foreach($arry as $key=>$value){
                    $sql .= $key.'='."'$value' and ";
                }
                $sql = rtrim($sql, ' and ');
                return self::$db->query($sql);
            }else if($status==2){
                foreach($arry as $key=>$value){
                    $sql .= $key.'='."'$value' or ";
                }
                $sql = rtrim($sql, ' or ');
                return self::$db->query($sql);
            }else{
                foreach($arry as $key=>$value){
                    $sql .= $key.'='."'$value'";
                }
            }
            return self::$db->query($sql);
        }
        /* 改 */
        // //$tableName是数据库名,$arry是需要更新的数据,$condition是where条件
        static function update($tableName, $arry, $condition){
            $sql = 'update '.$tableName. ' set ';
            foreach($arry as $key=>$value){
                $sql .= $key.'='."'$value',";
            }
            $sql = rtrim($sql, ',');
            foreach($condition as $key=>$value){
                $sql .= ' where '.$key.'='."'$value'";
            } 
            return self::$db->query($sql);
        }
        /* 查 */
        // //$tableName是数据库名,$arry是查询的字段
        static function select($tableName, $arry=array('*')){
            $sql = 'select ';
            foreach($arry as $key=>$value){
                $sql .= $value.',';
            }
            $sql = rtrim($sql, ',');
            $sql .= ' from '.$tableName;
            $obj = self::$db->query($sql);
            $result = $obj->fetchAll(PDO::FETCH_ASSOC);
            return $result;
        }
    }
    
    Db::run();

select查询方法还在继续添加where条件等功能,陆续更新中!

微信二维码
锐壳主机