加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 编程开发 > PHP > 正文

亲测能用的mysqli类,挺实用的

发布时间:2023-02-16 12:30:54 所属栏目:PHP 来源:互联网
导读:?PHP header(content-type:text/html;charset=utf-8); /* 掌握满足单例模式的必要条件 (1)私有的构造方法-为了防止在类外使用new关键字实例化对象 (2)私有的成员属性-为了防止在类外引入这个存放对象的属性 (3)公有的静态方法-为了让用户进行实例化对象的操
  <?PHP
 
  header('content-type:text/html;charset=utf-8');
 
  /*
 
  掌握满足单例模式的必要条件
 
  (1)私有的构造方法-为了防止在类外使用new关键字实例化对象
 
  (2)私有的成员属性-为了防止在类外引入这个存放对象的属性
 
  (3)公有的静态方法-为了让用户进行实例化对象的操作
 
  */
 
  class ConnectMysqLi{
 
    //私有的属性
 
    private static $dbcon=false;
 
    private $host;
 
    private $port;
 
    private $user;
 
    private $pass;
 
    private $db;
 
    private $charset;
 
    private $link;
 
    //私有的构造方法
 
    private function __construct($config=array()){
 
      $this->host = $config['host'] ? $config['host'] : 'localhost';
 
      $this->port = $config['port'] ? $config['port'] : '3306';
 
      $this->user = $config['user'] ? $config['user'] : 'root';
 
      $this->pass = $config['pass'] ? $config['pass'] : 'root';
 
      $this->db = $config['db'] ? $config['db'] : 'small2';
 
      $this->charset=isset($arr['charset']) ? $arr['charset'] : 'utf8';
 
      //连接数据库
 
      $this->db_connect();
 
      //选择数据库
 
      $this->db_usedb();
 
      //设置字符集
 
      $this->db_charset();
 
     }
 
     //连接数据库
 
     private function db_connect(){
 
      $this->link=MysqLi_connect($this->host.':'.$this->port,$this->user,$this->pass);
 
      if(!$this->link){
 
        echo "数据库连接失败<br>";
 
        echo "错误编码".MysqLi_errno($this->link)."<br>";
 
        echo "错误信息".MysqLi_error($this->link)."<br>";
 
        exit;
 
      }
 
     }
 
     //设置字符集
 
      private function db_charset(){
 
       MysqLi_query($this->link,"set names {$this->charset}");
 
      }
 
      //选择数据库
 
     private function db_usedb(){
 
       MysqLi_query($this->link,"use {$this->db}");
 
     }
 
     //私有的克隆
 
     private function __clone(){
 
       die('clone is not allowed');
 
     }
 
     //公用的静态方法
 
     public static function getIntance(){
 
       if(self::$dbcon==false){
 
        self::$dbcon=new self;
 
       }
 
       return self::$dbcon;
 
     }
 
     //执行sql语句的方法
 
      public function query($sql){
 
       $res=MysqLi_query($this->link,$sql);
 
       if(!$res){
 
        echo "sql语句执行失败<br>";
 
        echo "错误编码是".MysqLi_errno($this->link)."<br>";
 
        echo "错误信息是".MysqLi_error($this->link)."<br>";
 
       }
 
       return $res;
 
     }
 
     //打印数据
 
      public function p($arr){
 
        echo "<pre>";
 
        print_r($arr);
 
        echo "</pre>";
 
      }
 
      public function v($arr){
 
      echo "<pre>";
 
        var_dump($arr);
 
        echo "</pre>";
 
      }
 
      //获得最后一条记录id
 
      public function getInsertid(){
 
       return MysqLi_insert_id($this->link);
 
      }
 
     /**
 
      * 查询某个字段
 
      * @param
 
      * @return string or int
 
      */
 
      public function getone($sql){
 
       $query=$this->query($sql);
 
        return MysqLi_free_result($query);
 
      }
 
      //获取一行记录,return array 一维数组
 
      public function getRow($sql,$type="assoc"){
 
       $query=$this->query($sql);
 
       if(!in_array($type,array("assoc",'array',"row"))){
 
         die("MysqLi_query error");
 
       }
 
       $funcname="MysqLi_fetch_".$type;
 
       return $funcname($query);
 
      }
 
      //获取一条记录,前置条件通过资源获取一条记录
 
      public function getFormSource($query,$type="assoc"){
 
      if(!in_array($type,"array","row")))
 
      {
 
        die("MysqLi_query error");
 
      }
 
      $funcname="MysqLi_fetch_".$type;
 
      return $funcname($query);
 
      }

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读