zoukankan      html  css  js  c++  java
  • php单例模式封装数据库操作类增删改查

    <?php
    //三私一公 单例
    class Db{
    //数据库连接对象
    private static $instance;
    private static $table_name;
    private $pdo;
    //防止类直接实例化
    private function __construct(){
    $this->pdo = new PDO("mysql:host=127.0.0.1;dbname=test_system", "root", "");
    $this->pdo->query("set names utf8");
    }
    //禁止克隆对象
    private function __clone(){}
    //返回数据库实例对象
    public static function getDb($table_name){
    self::$table_name = $table_name;
    if(!(self::$instance instanceof self)){
    self::$instance = new self;
    }
    return self::$instance;
    }
    function add($table_name, $data){
    $keys = implode(",", array_keys($data));
    $value = "'".implode("','", array_values($data))."'";
    $sql = "insert into $table_name ($keys) values($value) ";
    $r = $this->pdo->exec($sql);
    $this->getErrorInfo();
    return $r;
    }
    function addAll($table_name, $data){
    $keys = implode(",", array_keys($data[0]));

    $arr = [];
    foreach ($data as $k => $v) {
    $arr[] = "('".implode("','", array_values($v))."')";
    }
    $value = implode(",", $arr);

    $sql = "insert into $table_name ($keys) values $value";
    $r = $this->pdo->exec($sql);
    $this->getErrorInfo();
    return $r;

    }
    function update($table_name, $data){
    $id = $data['id'];
    unset($data['id']);
    $arr = [];
    foreach($data as $k=>$v){
    $arr[] = $k."='".$v ."'";
    }
    $str = implode(",", $arr);
    $sql = "update $table_name set $str where id=$id";

    $r = $this->pdo->exec($sql);
    $this->getErrorInfo();
    return $r;
    }

    function select($table_name, $where = '1=1'){
    $sql = "select * from $table_name where $where ";
    $res = $this->pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
    $this->getErrorInfo();
    return $res;

    }
    function find($table_name, $where = '1=1'){
    $sql = "select * from $table_name where $where ";
    $res = $this->pdo->query($sql)->fetch(PDO::FETCH_ASSOC);
    $this->getErrorInfo();
    return $res;
    }
    function getErrorInfo(){
    if($this->pdo->errorCode() != '00000'){
    echo "<pre>";
    print_r($this->pdo->errorInfo());
    exit;
    }
    }
    function delete($id){
    $table_name = self::$table_name;
    if(is_array($id)){
    $id = implode(',', $id);
    }
    $sql = "delete from $table_name where id in ($id)";
    $r = $this->pdo->exec($sql);
    $this->getErrorInfo();
    return $r;
    }

    }
    function M($table_name){
    $db = Db::getDb($table_name);
    return $db;
    };

    $data = [
    [
    'name'=>'雪碧',
    'class_name'=>'3333333',
    ],
    [
    'name'=>'可乐',
    'class_name'=>'3333333',
    ],
    ];


    $r = M('user')->delete(726);
    echo $r;
  • 相关阅读:
    Linux文件属性
    [Oracle] Listener的动态注册
    jQuery easyUI Pagination控件自定义div分页(不用datagrid)
    桂林电子科技大学出校流量控制器Android版1.0.0
    php使用check box
    Python windows ping
    Python selenium chrome 环境配置
    Linux wget auto login and backup database
    PyQt4 ShowHMDB show sqlite3 with QTableWidget summary
    PyQt4 py2exe 打包 HardwareManager
  • 原文地址:https://www.cnblogs.com/bkhdd/p/9458523.html
Copyright © 2011-2022 走看看