自己写了一个简单的mysql数据库连接类

直接上代码吧,有时间在维护下

class DB {
    private $host; //主机
    private $username; //用户名
    private $password; //密码
    private $dbName; //数据库名称
    private $port; //数据库端口
    private $socket; //套接字
    private $mysqli; //mysqli对象
    private $charset; //字符集
    private $lastSql; //最后执行的sql

    public function __construct($array=[])
    {
        $this->charset = isset($array['charset']) ? $array['charset'] : 'utf8';
        $this->connect($array);
        $this->mysqlConnect();
    }

    public function connect($array=[])
    {
        $this->host = isset($array['host']) ? $array['host'] : '127.0.0.1';
        $this->username = isset($array['username']) ? $array['username'] : 'root';
        $this->password = isset($array['password']) ? $array['password'] : 'root';
        $this->dbName = isset($array['dbName']) ? $array['dbName'] : '';
        $this->port = isset($array['port']) ? $array['port'] : 3306;
        $this->socket = isset($array['socket']) ? $array['socket'] : '';
    }

    private function mysqlConnect()
    {
        $this->mysqli = new mysqli($this->host,$this->username,$this->password,$this->dbName,$this->port);
    }


    public function query($sql)
    {
        $this->lastSql = $sql;
        $result = $this->mysqli->query($this->lastSql);
        if($result === false) {
            $this->error();
        }
        return $result;
    }

    public function Charset($charset='')
    {
        $this->charset = $charset ? $charset: $this->charset;

        $this->execute("set names {$this->charset}");
    }


    public function execute($sql)
    {
        $this->query($sql);
        return true;

    }

    public function select($sql)
    {
        $result = $this->query($sql);
        return $result->fetch_all(MYSQLI_ASSOC);

    }

    public function getLastSql()
    {
        return $this->lastSql;
    }

    public function error()
    {
        $result = '';
        if($this->mysqli->error) {
            $result.= "错误提示:{$this->mysqli->error}<br />";
        }

        if($this->mysqli->errno) {
            $result.= "错误代号:{$this->mysqli->errno}<br />";
        }
        if(!empty($result)){
            $result.="错误的sql语句:{$this->lastSql}";
        }

        if(!empty($result)) {
            exit($result);
        } else {
            exit('没有错误');
        }
    }

}


本地试试:

$db = new DB(['dbName'=>'test']);

var_dump($db->select('select * from test limit 0,5'));

var_dump($db->select('select name,time from test where id in(1,5)'));

echo $db->getLastSql();

运行结果如图所示:



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值