PHP简单封装MySQL操作类继承PDO

<?php

//继承PDO自己封装一个简简单单的数据库操作类
class Mysql extends PDO
{
    private $dsn = 'mysql:host=localhost;dbname=';
    private $username;
    private $password;
    private $conn;
    //来一手构造方法实例化类的时候就连接数据库;
    public function __construct($dbn, $username = 'root', $password = 'root')
    {
        $this->dsn .= $dbn . ';';
        $this->username = $username;
        $this->password = $password;
        $this->conn = PDO::__construct($this->dsn, $username, $password);
        //搞定数据库编码为utf8;
        parent::exec('set names utf8');
    }
    //执行一条select查询语句
    /**
     * @param string $sql 待执行的SQL语句
     * @param string $fetch_style 以那种数据形式返回 FETCH_ASSOC 或者 FETCH_NUM 另一种反正我不用 FETCH_BOTH
     * @param array
     */
    public function aQuery($sql, $fetch_style = PDO::FETCH_ASSOC)
    {
        try {
            //query发送一条sql语句
            $stmt = $this->query($sql);
            //全部取出数据数据格式为fetch_style
            return $stmt->fetchAll($fetch_style);
            //出错了就报错么!
        } catch (Throwable $th) {
            die($th->getMessage());
        }
    }
    /**
     * 执行带有绑定参数的SQL语句
     *
     * @param string $sql 要执行的SQL语句
     * @param array $array 绑定的参数
     * @param string $fetch_style 以哪种形式返回数据 PDO::FETCH_ASSOC PDO::FETCH_NUM PDO::FETCH_BOTH 等
     * @return array or bool
     */
    public function moreExec($sql, $array = array(), $fetch_style = PDO::FETCH_ASSOC)
    {
        try {
            //先拟定一个查询对象
            $stmt = $this->prepare($sql);
            //然后嘛将数组里面的键名和键值绑定起来
            if (count($array) > 0) {
                foreach ($array as $k => $v) {
                    $stmt->bindValue($k, $v);
                }
            }
            //接下来就搞一手执行查询的给你们看看
            //如果SQL语句是查询语句
            if (substr(trim($sql), 0, 6) === 'select') {
                //执行SQL语句execute
                $stmt->execute();
                return $stmt->fetchAll($fetch_style);
            }
            //如果是update 
            //如果是delete
            //如果是insert
        } catch (Throwable $th) {
            die($th->getMessage());
        }
    }
    //关闭数据库链接
    public function __destruct()
    {
        unset($this->conn);
    }
}
版权声明:若无特殊注明,本文为《周小雨》原创,转载请保留文章出处。
本文链接:https://zxyy.me/post-177.html
正文到此结束

热门推荐

管理员已关闭本篇文章评论!