PHP db连接 数据库

更详细点这里: https://blog.csdn.net/u011415782/article/details/77864102

db类

<?php
    // 数据库连接类
    class DB{
        //私有的属性
        private static $dbcon=false;
        private $host;
        private $port;
        private $user;
        private $pass;
        private $db;
        private $charset;
        private $link;
        //私有的构造方法
        public function __construct(){
            $this->host =  '127.0.0.1';
            $this->port =  '3306';
            $this->user =  'root';
            $this->pass =  '';
            $this->db =  'aoc_2015_db';
            $this->charset= 'utf8';
            //连接数据库
            $this->db_connect();
            //选择数据库
            $this->db_usedb();
            //设置字符集
            $this->db_charset();
            // print_r('连接成功');
        }
        //连接数据库
        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 getFormSource($query,$type="assoc"){
            if(!in_array($type,array("assoc","array","row")))
            {
            die("mysqli_query error");
            }
            $funcname="mysqli_fetch_".$type;
            return $funcname($query);
        }
        //获取多条数据,二维数组
        public function get_more($sql){
            $query=$this->query($sql);
            $list=array();
            while ($r=$this->getFormSource($query)) {
            $list[]=$r;
            }
            return $list;
        }
        //根据sql语句得到一条记录
        public function get_one($sql){
            $temp=$this->get_more($sql);
            if(empty($temp)){$temp[0]=array();}
            return $temp[0];
        }
        // 更新
        /**
        * [修改操作description]
        * @param [type] $table [表名]
        * @param [type] $data [数据]
        * @param [type] $where [条件]
        * @return [type]
        */
        public function update($table,$data,$where,$limit=0){
            //遍历数组,得到每一个字段和字段的值
            $str='';
            foreach($data as $key=>$v){
                $str.="$key='$v',";
            }
            $str=rtrim($str,',');
            if(is_array($where)){
                foreach ($where as $key => $val) {
                    if(is_array($val)){
                    $condition = $key.' in ('.implode(',', $val) .')';
                    } else {
                    $condition = $key. '=' .$val;
                    }
                }
                } else {
                $condition = $where;
                }
                if (!empty($limit)) {
                    $limit = " limit ".$limit;
                }else{
                    $limit='';
             }
            //修改SQL语句
            $sql="update $table set $str where $condition $limit";
            $this->query($sql);
            //返回受影响的行数
            return mysqli_affected_rows($this->link);
        }
        /*
        * 删除多条数据方法
        * @param1 $table, $where 表名 条件
        * @return 受影响的行数
        */
        public function deleteAll($table, $where){
            if(is_array($where)){
                foreach ($where as $key => $val) {
                    if(is_array($val)){
                    $condition = $key.' in ('.implode(',', $val) .')';
                    } else {
                    $condition = $key. '=' .$val;
                    }
                }
            } else {
                $condition = $where;
            }
            $sql = "delete from $table where $condition";
            $this->query($sql);
            //返回受影响的行数
            return mysqli_affected_rows($this->link);
        }

    }
?>

使用方法

	require_once('./config.php');
    $db = new DB();
    $series = $db->get_more("SELECT * FROM `jy_series`");
    json_encode($series);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值