• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    自写的利用PDO对mysql数据库增删改查操作类

    前言

    PDO一是PHP数据对象(PHP Data Object)的缩写。

    并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库的PDO驱动)访问数据库服务器。

    PDO并不提供数据库抽象,它并不会重写SQL或提供数据库本身缺失的功能,如果你需要这种功能,你需要使用一个更加成熟的抽象层。

    最近在做项目时用到了PDO操作mysql数据库,于是自己写了一个类文件,命名为mysql_class.php文件代码如下:

    示例代码

    ?php
    class mysql{
     //常量声明
     const DSN = "mysql:host=[数据库地址];dbname=[数据库名];charset=utf8";//数据库地址与数据库名及编码
     const USERNAME = "[数据库用户名]";//用户名
     const PASSWD = "[数据库密码]";//密码
     
     //私有变量声明
     private $sql = NULL;//sql语句缓存
     private $link = NULL;//数据库连接
     private $result = NULL;//结果
     
     /*******************************************************************************
      * @ 名称:建立连接
      * @ 属性:私有
     *******************************************************************************/
     private function connect(){
      try {
       $this->link = new \PDO(self::DSN, self::USERNAME, self::PASSWD, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));//创建连接
      }
      catch (PDOException $e) {
       die ("Error!:".$e->getMessage()."hr/>");
      }
     }
     
     /*******************************************************************************
      * @ 名称:执行sql语句
      * @ 属性:私有
      * @ 入口参数:无
      * @ 出口参数:执行成功返回真,否则返回假,查询语句存储结果集数组
     *******************************************************************************/
     private function sql(){
      try {
       $this->connect();
       $this->link->beginTransaction();//开启一个事务
       $prepare = $this->link->prepare($this->sql);//准备查询语句
       $prepare->execute();//执行查询语句并返回结果集
       $cmd = strtolower(substr(trim($this->sql),0,6));//截取命令字符
       if($cmd == "select"){
        $array = $prepare->fetch(PDO::FETCH_ASSOC);//获取结果集中的所有数据
        if(count($array)){
         $this->result = NULL;
         $this->result = $array;//存储结果集
         return true;//查询到结果返回真
        }else{
         return false;//否则返回假
        }
       }else if($cmd == "insert" || $cmd == "delete" || $cmd == "update"){
        if($prepare){
         return true;//执行成功返回真
        }else{
         return false;//否则返回假
        }
       }
       $this->link->commit(); //如果正确执行完成那么确认commit
      } catch (PDOException $e) {
       $this->link->rollBack();//如果执行中有错误的情况下回滚
       die ("Error!:".$e->getMessage()."hr/>");
      }
     }
     
     /*******************************************************************************
      * @ 名称:sql语句处理
      * @ 属性:公有
      * @ 入口参数:cmd增删改查字符命令;dsname数据表名;first第一个参数;second第二个参数;
      * @ 出口参数:执行成功返回真,否则返回假,查询操作返回结果集数组
      * @ 使用示例:
      $mysql->handle("insert","abc","openid,nickname","'123','abc'");//增加
      $mysql->handle("delete","abc","openid='123'");//删除
      $mysql->handle("update","abc","nickname='def'","openid='123'");//更新
      $res = $mysql->handle("select","abc","*","openid='123'");//查询
      if(is_array($res) == true){
       foreach($res as $key=>$val){
        echo $key."=".$val."hr>";
       }
      }//遍历查询结果数组
     *******************************************************************************/
     public function handle($cmd,$dsname,$first,$second=NULL){
      switch($cmd){
       case 'insert'://插入
        $this->sql = "insert into $dsname ($first) values ($second)";
        break;
       case 'delete'://删除
        $this->sql = "delete from $dsname where $first";
        break;
       case 'update'://更新
        $this->sql = "update $dsname set $first where $second";
        break;
       case 'select'://查询
        $this->sql = "select $first from $dsname where $second";
        break;
       default:
        die ("Syntax Error!");//提示语法错误
        break;
      }
      
      $res = $this->sql();//执行sql语句
      if($res){
       if($cmd == 'select'){
        return $this->result;//返回查询结果
       }else{
        return true;//执行成功返回真
       }
      }else{
       return false;//否则返回假
      }
      $this->link=NULL;;//关闭数据库
     }
    }
    $mysql = new mysql;//数据库类的实例化
    ?>

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

    您可能感兴趣的文章:
    • PHP+MYSQL实现用户的增删改查
    • MySQL中对于索引的基本增删查改操作总结
    • mysql增删改查基础语句
    • Mysql的增删改查语句简单实现
    • nodejs操作mysql实现增删改查的实例
    • MySQL的增删查改语句用法示例总结
    • Mysql表,列,库增删改查问题小结
    • PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
    • 利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
    • MySQL语句整理及汇总介绍
    • mysql语句实现简单的增、删、改、查操作示例
    上一篇:PHP实现QQ、微信和支付宝三合一收款码实例代码
    下一篇:Laravel 5.4.36中session没有保存成功问题的解决
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    自写的利用PDO对mysql数据库增删改查操作类 自,写的,利用,PDO,对,mysql,