• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 数据库类的封装及使用

php 搞代码 4年前 (2022-01-22) 38次浏览 已收录 0个评论

这篇文章介绍的内容是关于PHP 数据库类的封装及使用,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

封装类
<?php//封装一个DB类,用来专门操作数据库,以后凡是对数据库的操作,都由DB类的对象来实现class DB{    //属性        private $host;        private $port;        private $user;        private $pass;       private $dbname;        private $charset;    private $prefix;            //表前缀        private $link;                //连接资源(连接数据库,一般会返回一个资源,所以需要定义一个link属性)        //构造方法(作用:为了初始化对象的属性),会被自动调用       /*          * @param1 array $arr,默认为空,里面是一个关联数组,里面有7个元素          * array('host' => 'localhost','port' => '3306');          */         public function __construct($arr = array()){             //初始化             $this->host = isset($arr['host']) ? $arr['host'] : 'localhost';//先判断是否有自己的host,如果有就用自己的host,否则就使用默认的localhost             $this->port = isset($arr['port']) ? $arr['port'] : '3306';    本%文来源gaodaimacom搞#^代%!码网@搞代gaodaima码         $this->user = isset($arr['user']) ? $arr['user'] : 'root';            $this->pass = isset($arr['pass']) ? $arr['pass'] : 'czyyzb';             $this->dbname = isset($arr['dbname']) ? $arr['dbname'] : 'mydb';             $this->charset = isset($arr['charset']) ? $arr['charset'] : 'utf8';             $this->prefix = isset($arr['prefix']) ? $arr['prefix'] : '';             //连接数据库(类是要操作数据库,因此要连接数据库)             $this->connect();             //设置字符集             $this->setCharset();             //选择数据库             $this->setDbname();         }         /*           * 连接数据库          */          private function connect(){              //mysql扩展连接               $this->link = mysql_connect($this->host . ':' .        $this->port,$this->user,$this->pass);               //判断结果               if(!$this->link){                   //结果出错了                   //暴力处理,如果是真实线上项目(生产环境)必须写入到日志文件                   echo '数据库连接错误:<br/>';                   echo '错误编号' . mysql_errno() . '<br/>';                   echo '错误内容' . mysql_error() . '<br/>';                   exit;               }           }           /*            * 设置字符集           */           private function setCharset(){               //设置                $this->db_query("set names {$this->charset}");            }            /*             * 选择数据库            */            private function setDbname(){                $this->db_query("use {$this->dbname}");            }            /*              * 增加数据               * @param1 string $sql,要执行的插入语句               * @return boolean,成功返回是自动增长的ID,失败返回FALSE              */              public function db_insert($sql){                  //发送数据                  $this->db_query($sql);                  //成功返回自增ID                   return mysql_affected_rows() ? mysql_insert_id() : FALSE;               }               /*                * 删除数据                * @param1 string $sql,要执行的删除语句                * @return Boolean,成功返回受影响的行数,失败返回FALSE               */               public function db_delete($sql){                   //发送SQL                   $this->db_query($sql);                   //判断结果                   return mysql_affected_rows() ? mysql_affected_rows() : FALSE;               }               /*                * 更新数据                * @param1 string $sql,要执行的更新语句                * @return Boolean,成功返回受影响的行数,失败返回FALSE               */               public function db_update($sql){                   //发送SQL                   $this->db_query($sql);                   //判断结果                   return mysql_affected_rows() ? mysql_affected_rows() : FALSE;               }               /*                 * 查询:查询一条记录                 * @param1 string $sql,要查询的SQL语句                 * @return mixed,成功返回一个数组,失败返回FALSE                */                public function db_getRow($sql){                    //发送SQL                    $res = $this->db_query($sql);                    //判断返回                    return mysql_num_rows($res) ? mysql_fetch_assoc($res) : FALSE;                }                /*                  * 查询:查询多条记录                  * @param1 string $sql,要查询的SQL语句                  * @return mixed,成功返回一个二维数组,失败返回FALSE                 */                 public function db_getAll($sql){                     //发送SQL                     $res = $this->db_query($sql);                     //判断返回                     if(mysql_num_rows($res)){                        //循环遍历                         $list = array();                         //遍历                         while($row = mysql_fetch_assoc($res)){                             $list[] = $row;                         }                         //返回                         return $list;                     }                     //返回FALSE                     return FALSE;                  }                  /*                   * mysql_query错误处理                   * @param1 string $sql,需要执行的SQL语句                   * @return mixed,只要语句不出错,全部返回                  */                  private function db_query($sql){                      //发送SQL                      $res = mysql_query($sql);                      //判断结果                      if(!$res){                          //结果出错了                          //暴力处理,如果是真实线上项目(生产环境)必须写入到日志文件                          echo '语句出现错误:<br/>';                          echo '错误编号' . mysql_errno() . '<br/>';                          echo '错误内容' . mysql_error() . '<br/>';                          exit;                      }                      //没有错误                      return $res;                  }                  //__sleep方法                  public function __sleep(){                      //返回需要保存的属性的数组                      return array('host','port','user','pass','dbname','charset','prefix');                  }                  //__wakeup方法                  public function __wakeup(){                      //连接资源                      $this->connect();                      //设置字符集和选中数据库                      $this->setCharset();                      $this->setDbname();                  }                  /*                   * 获取完整的表名                  */                  protected function getTableName(){                      //完整表名:前缀+表名                      return $this->prefix . $this->table;                  }              }       ?>



使用
<? php
header("Content-type: text/html; charset=utf-8");include("conn.php");//实例化$con = new DB(array('dbname' => 'oilmis_wh'));$sql = "SELECT * FROM stock ";$arr = $con ->db_getAll($sql);
?>//这个DB类,一般不写析构(不释放资源)

相关推荐:

很好用的PHP数据库类

php 数据库类 适用于 mysql sql service

以上就是PHP 数据库类的封装及使用的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 数据库类的封装及使用
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址