<?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;

php单例模式封装数据库操作类增删改查的更多相关文章

  1. Linq 数据库操作(增删改查)

    Linq数据库增删改查 Linq是一种查询语言,集成包含在formwork中,包含在C#语言中,它的作用是降低查询的门槛,提高开发效率,是我们必须掌握的技术之一,下面是我自己对linq数据库操作的方法 ...

  2. spring boot快速入门 4: jpa数据库操作 实现增删改查

    spring boot jpa逆向生成表 简单实例: 第一步:pom文件: <?xml version="1.0" encoding="UTF-8"?&g ...

  3. 初次尝试PHP——一个简单的对数据库操作的增删改查例子

    第一次学习PHP,很多人说PHP是最好的语言,学习了一点点,还不敢说这样的话,不过确实蛮好用的. 做了一个简单的对数据库的增删改查的操作,主要是将四种操作写成了独立的函数,之后直接调用函数.以下是代码 ...

  4. flask 数据库操作(增删改查)

    数据库操作 现在我们创建了模型,生成了数据库和表,下面来学习常用的数据库操作,数据库操作主要是CRUD,即Create(创建).Read(读取/查询).Update(更新)和Delete(删除). S ...

  5. MySQL数据库操作:“增删改查”,忘记密码重置等。

    [注] 数据库的“增删查改”,参考原作者Wid:http://www.cnblogs.com/mr-wid/archive/2013/05/09/3068229.html#d11.感谢大佬们的技术分享 ...

  6. Java 数据库操作oracle增删改查,通用封装基于hashmap

    pt1:首先安装oracle连接驱动 下载地址:https://pan.baidu.com/s/1jW_ofgU4eJmAn7Y2J5B46A  密码:epkz 1.将ojdbc6.jar导入项目中 ...

  7. ThinkPHP 数据库操作(二) : 增删改查

    基本使用 可以直接使用数据库运行原生SQL操作了,支持 query (查询操作)和 execute (写入操作)方法,并且支持参数绑定. Db::query('select * from think_ ...

  8. laravel中的数据库操作(增删改查)方法一

    导入命名空间和DBnamespace App\Http\Controllers; use Illuminate\Support\Facades\DB; public function index(){ ...

  9. 设计模式 - 单例模式mysql数据库操作类

    待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...

随机推荐

  1. #《Essential C++》读书笔记# 第六章 以template进行编程

    练习题答案 练习6.1 试改写以下类,使它成为一个class template: class example { public: example(double min, double max); ex ...

  2. c 指针改变数字

    之前已经有了: gcc -c day4.c -Wall gcc -o day4.exe day4.o 所以才会有以下结果

  3. 通过phpstorm管理svn的gui界面报错问题

    mac通过phpstorm来gui管理svn时,提示Invalid VCS root mappings 原因是因为mac中的svn版本过高,phpstorm可以兼容的版本是svn 1.6 \ 1.7 ...

  4. python——面向对象基础(2),烤地瓜

    """Date:2020.2.9 测试案例:烤地瓜需求分析1.烤的时间和对应的地瓜状态:2.烤制过程步骤: 1.定义类, 地瓜属性,状态,烤的时间,调料 2.定义方法,怎 ...

  5. 从HTML到node.js以及跨域问题的解决

    废话不多说,直接上代码 网页客户端 <!DOCTYPE html> <html> <head> <meta http-equiv="Content- ...

  6. sass实现头条新闻列表页面

    Index.html <!DOCTYPE html> <html> <head> <title>今日头条</title> <meta ...

  7. NoSQLBooster如何MongoDB的部分文档从一个集合拷贝到另外一个集合中

    假设MongoDB数据库中存有collection_A和collection_B两个集合,如下图所示: (一)先从集合collection_A中拷贝选择的文档 打开collection_A,看到目前有 ...

  8. html font后面跟多种字体

    例子 body,div,dl,dt,dd,li,h1,h2,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { margin: 0; pa ...

  9. bootstrap 兼容 IE8

    在 html 中引用 <!-- bootstrap 兼容 IE8 --> <script src="../../jsapi/js/html5shiv.min.js" ...

  10. vsftp配置遇到的一些问题

    设置匿名登陆的时候,要保证 /var/ftp/ 的所有者 是root,不然会一直提示输入用户名和密码,无法登陆! 上传的权限 local_umask =002 以及 匿名用户 anon_umask=0 ...