1. <?php
  2.  
  3. /**
    * name: sql操作封装,可扩展 .
    * User: 张云山
    * Date: 2016/9/4
    * Time: 22:02
    */
  4.  
  5. //php文件编码设置
    header('Content-type: text/html; charset=utf-8');
    //数据库类
    class sqled {
    public function addTabase($sql_url,$sql_name,$sql_pss,$sql_DB){//创建数据库
    $conn = new mysqli($sql_url,$sql_name,$sql_pss);
    if(!$conn){
    echo "连接失败<br>";
    };
    $sql = "CREATE DATABASE ".$sql_DB;
    if($conn->query($sql) == TRUE){
    return true;
    }else{
    echo $conn->error."<br>";
    };
    $conn -> close();
    }
    //示例(创建数据库)************/// addTabase($sql_url,$sql_name,$sql_pss,$sql_DB);
    ///*************************************************************************///
  6.  
  7. public function addTable($sql_url,$sql_name,$sql_pss,$sql_DB,$data){//创建表以及字段
    $conn = new mysqli($sql_url,$sql_name,$sql_pss,$sql_DB);
    // 检测连接
    if (!$conn) {
    echo "连接失败";
    };
    $sql = "CREATE TABLE {$data['name']} (
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    {$data['data']}
    )";
    /*
    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    firstname VARCHAR(30) NOT NULL,
    lastname VARCHAR(30) NOT NULL,
    email VARCHAR(50),
    reg_date TIMESTAMP
    */
    if($conn->query($sql) == TRUE){
    return true;
    }else{
    echo $conn->error."<br>";
    };
    $conn -> close();
    }
    //示例(创建表以及字段)************/// addTable($sql_url,$sql_name,$sql_pss,$sql_DB,array("name"=>"ceshi_biao","data"=>"
    // test VARCHAR(30) NOT NULL
    // "));
    //***************************************************************************************///
  8.  
  9. public function addDB($sql_url,$sql_name,$sql_pss,$sql_DB,$data){//添加字段数据
    $conn = new mysqli($sql_url,$sql_name,$sql_pss,$sql_DB);
    if(!$conn){
    echo "连接失败";
    };
    $sql = "INSERT INTO {$data['name']} (
    {$data["key"]}
    )
    VALUES (
    {$data['value']}
    )";
    if($conn->query($sql) == TRUE){
    return true;
    }else{
    echo $conn->error;
    };
    $conn -> close();
    }
    //示例(添加字段数据)************/// addDB($sql_url,$sql_name,$sql_pss,$sql_DB,array(
    // "name"=>"ceshi_biao",
    // "key"=>"zanIndex",
    // "value"=>"0",
    //));
    ///***********************************************************************************///
  10.  
  11. public function queryDB($sql_url,$sql_name,$sql_pss,$sql_DB,$data){//读取数据
    // 创建连接
    $conn = new mysqli($sql_url,$sql_name,$sql_pss,$sql_DB);
    // 检测连接
    if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
    };
    $sql = "SELECT {$data['data']} FROM {$data['name']}";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
    // 输出每行数据
    $data_data = explode(",",$data['data']);
    $key = '{';
    $fh = ',';
    for($i = 0 ; $i < count($data_data) ; $i++){
    if($i == count($data_data)-1){
    $fh = '';
    };
    $key = $key.'"'.$data_data[$i].'":"$row[\''.$data_data[$i].'\']"'.$fh;
    };
    $key = $key.'}';
    $returnData = array();
    while($row = $result->fetch_assoc()) {
    $key1 = json_decode($key,true);
    foreach($key1 as $keyName=>$value){
    $value = "{".$value."}";
    eval("\$value = \"$value\";");
    $key1[$keyName] = $value;
    };
    array_push($returnData,$key1);
    };
    // echo $returnData;//执行回调,并返回查询结果
    } else {
    echo "0 个结果";
    };
    return $returnData;
    $conn->close();
    }
    //示例(数据读取或数据查询)************/// queryDB($sql_url,$sql_name,$sql_pss,$sql_DB,array(
    // "name" => "ceshi_biao",
    // "data" => "id,zanIndex",
    // ));
    //******************************************************************///
  12.  
  13. public function updateDB($sql_url,$sql_name,$sql_pss,$sql_DB,$data){//数据更新
    $con=mysqli_connect($sql_url,$sql_name,$sql_pss,$sql_DB);
    // 检测连接
    if (mysqli_connect_errno())
    {
    echo "连接失败: " . mysqli_connect_error();
    };
    $sqlUpdate_set = null;
    $sqlUpdate_WHERE = null;
    //无条件设置,全部更新
    $index = 0;
    $fh = ",";
    foreach ($data['newdata'] as $key => $value){
    $index += 1;
    if($index == count($data['newdata'])){
    $fh = null;
    };
    $sqlUpdate_set = $sqlUpdate_set.$key."='".$value."'".$fh;
    };
    //有条件限制s
    if(count($data["data"]) > 0 ){
    $sqlUpdate_WHERE = "WHERE";
    $fh1 = "AND";
    $index1 = 0;
    foreach ($data["data"] as $key=>$value){
    $index1 += 1;
    if($index1 == count($data['data'])){
    $fh1 = null;
    };
    $sqlUpdate_WHERE = $sqlUpdate_WHERE." ".$key."='".$value."'".$fh1;
    };
    };
    //有条件限制e
    mysqli_query($con,"UPDATE {$data['name']} SET ".$sqlUpdate_set.$sqlUpdate_WHERE);
    mysqli_close($con);
    return true;
    }
    //示例(数据更新)************/// updateDB($sql_url,$sql_name,$sql_pss,$sql_DB,array(
    // "name"=>"ceshi_biao",
    // "newdata" => array(
    // "zanIndex"=>"豆腐干发给豆腐",
    // "id"=>"1",
    // ),
    // "data"=> array()//条件
    // ));
    //*****************************************************************///
  14.  
  15. public function deleteDB($sql_url,$sql_name,$sql_pss,$sql_DB,$data){//数据删除
    $con=mysqli_connect($sql_url,$sql_name,$sql_pss,$sql_DB);
    // 检测连接
    if (mysqli_connect_errno())
    {
    echo "连接失败: " . mysqli_connect_error();
    };
    $result = mysqli_query($con,"DELETE FROM {$data['name']} WHERE {$data['data']}");
    echo $result;
    mysqli_close($con);
    return true;
    }
    //示例(数据删除)************/// deleteDB($sql_url,$sql_name,$sql_pss,$sql_DB,array(
    // "name"=>"ceshi_biao",
    // ));
    //*********************************************************************************//
  16.  
  17. //数据初始值赋值
    public function aab($a,$b){
    if($a){
    $a = $a;
    }else{
    $a = $b;
    };
    return $a;
    }
    //*********************************************************************************//
  18.  
  19. //数据库操作类型
    public static $sql_type = array(
    "addTabase"=>"addTabase",//创建数据库
    "addTable"=>"addTable",//创建表以及字段
    "addDB"=>"addDB",//添加字段数据
    "queryDB"=>"queryDB",//读取数据
    "updateDB"=>"updateDB",//数据更新
    "deleteDB"=>"deleteDB"//数据删除
    );
    //*********************************************************************************//
  20.  
  21. //sql综合调用方法;
    public function fn($sql){
    $sql['type'] = $this->aab($sql['type'],sqled::$sql_type['queryDB']);//默认数据库操作设置为(数据查询)
    $sql['url'] = $this->aab($sql['url'],"127.0.0.1");
    $sql['name'] = $this->aab($sql['name'],"root");
    $sql['pss'] = $this->aab($sql['pss'],"admin");
    $sql['db'] = $this->aab($sql['db'],"");
    $sql['table'] = $this->aab($sql['table'],"");
    $sql['array'] = $this->aab($sql['array'],array());
    switch ($sql['type']){
    case "addTabase";//创建数据库
    return $this->addTabase($sql['url'],$sql['name'],$sql['pss'],$sql['db']);
    break;
    case "addTable";//创建表以及字段
    return $this->addTable($sql['url'],$sql['name'],$sql['pss'],$sql['db'],$sql['array']);
    break;
    case "addDB";//添加字段数据
    return $this->addDB($sql['url'],$sql['name'],$sql['pss'],$sql['db'],$sql['array']);
    break;
    case "queryDB";//读取数据
    return $this->queryDB($sql['url'],$sql['name'],$sql['pss'],$sql['db'],$sql['array']);
    break;
    case "updateDB";//数据更新
    return $this->updateDB($sql['url'],$sql['name'],$sql['pss'],$sql['db'],$sql['array']);
    break;
    case "deleteDB";//数据删除
    return $this->deleteDB($sql['url'],$sql['name'],$sql['pss'],$sql['db'],$sql['array']);
    break;
    }
    }
    //示例(sql操作)*****************///
    //$sql = new sqled();
    //$q = $sql->fn(array(
    // "db"=>sql_db,
    // 'type'=>sqled::$sql_type['deleteDB'],
    // "array"=>array(
    // "name"=>"user",
    // "data"=>"id",
    // "newdata"=>array(
    // "id"=>"5",
    // "user" => "new-d"
    // )
    // )
    //));
    ///******************************************************************************//
  22.  
  23. };

mysql数据库封装的更多相关文章

  1. mysql数据库封装和 分页查询

    1 之前我们学到了php连接mysql数据库的增删改查,中间要多次调用数据库, 而且以后用到的表比较多,上传中如果需要改数据的话会非常麻烦,但是如果 我们把数据库封装,到时就可以很轻松的把改掉一些数据 ...

  2. MySQL数据库封装和分页查询

    1.数据库封装 <?php //我用的数据库名是housedb class DBDA {public $host="localhost";public $uid=" ...

  3. python连接mysql数据库封装

    源码: import pymysql class MysqlConnect(object): # 魔术方法, 初始化, 构造函数 def __init__(self, host, user, pass ...

  4. 如何实现一个php框架系列文章【6】mysql数据库

    实现一个mysql数据库封装需要考虑的问题 使用方便性 采用直接sql语句操作方式.只要会写sql语句,那么将没有其他学习成本. uctphp框架提供的dba辅助封装类,用会之后将爱不释手. 使用前需 ...

  5. python3操作MySQL数据库

    安装PyMySQL 下载地址:https://pypi.python.org/pypi/PyMySQL 1.把操作Mysql数据库封装成类,数据库和表先建好 import pymysql.cursor ...

  6. MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. nodejs学习(三)--express连接mysql数据库,mysql查询封装

    一.说一下 连接不同的数据库需要安装相应的插件,此demo使用mysql数据库,需自行安装mysql数据库软件. 新建数据库webapp, 新建表users: 二.直接开码 npm install m ...

  8. 使用jdbc将mysql数据库中的内容封装为指定对象的list集合

    使用jdbc将mysql数据库中的内容封装为指定对象的list集合 public List<User> findAll() { private JdbcTemplate template ...

  9. JDBC Java 程序从 MySQL 数据库中读取数据,并封装到 Javabean 对象中

    MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL) 相关内容:JDBC Java 连接 MySQL 数据库 用于测试的 M ...

随机推荐

  1. .htaccess 基础教程(四)Apache RewriteCond 规则参数

    Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制.此UR ...

  2. 【Alpha版本】冲刺-Day10

    队伍:606notconnected 会议时间:11月18日 会议总结 张斯巍(433) 今天安排:完成剩余界面的设计,小修小补 完成度:100% 遇到的问题:无 感想:因为自己是负责界面美工部分的, ...

  3. ubuntu和centos安装RRDTool——cacti前置技能

    Installing Pre-Requisites Note that RRDTool 1.0.x versions included all dependancies, but 1.2.x vers ...

  4. MySQL 5.6 for Windows 解压缩版配置安装

    MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的.如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装在C:\P ...

  5. vim 使用

    vim有三种模式:输入模式,命令模式,底行模式,使用esc进入命令模式,在命令模式下按英文的冒号,进入底行模式:命令行模式下按i进入输入模式.vim编辑文件是将文件内容复制到缓冲区显示在屏幕上. vi ...

  6. c/c++与函数有关的优化

    一.函数调用的优化 调用函数需要对内存进行多次访问,因此对函数的调用通常很费时,容易造成程序效率低下: 在函数调用过程中,如果每一次函数的调用结果都相同且需要多次调用时,可以将几次调用的结果进行多次累 ...

  7. MongoDB的ObjectId和基本操作增删改查(3)

    ObjectId 基本操作增删改查 增: insert 介绍: mongodb存储的是文档,. 文档是json格式的对象. 语法: db.collectionName.insert(document) ...

  8. [译]:Orchard入门——使用标签管理内容

    原文链接:Organizing Content Using Tags 在Orchard中,内容项可以使用标签来分类,同时,通过格式为 ~/tags/tag-name 的url可以直接查看包含对应标签关 ...

  9. C# 使用 NPOI 库读写 Excel 文件(转载)

    NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件.在处理Excel文件上,NPOI 可以同时兼 容xls 和 xlsx.官网提供了一份Examples,给出了 ...

  10. Zookeeper分布式集群搭建

    实验条件:3台安装linux的机子,配置好Java环境. 步骤1:下载并分别解包到每台机子的/home/iHge2k目录下,附上下载地址:http://mirrors.cnnic.cn/apache/ ...