admin 发表于 2022-12-9 13:24:30

php封装MySQL的数据操作的功能执行增、删、改操作

php封装MySQL的数据操作的功能执行增、删、改操作

代码如下:
<?php
//封装MySQL单例
class MySQLDB {
        private $host;                //主机地址
        private $port;                //端口号
        private $user;                //用户名
        private $pwd;                //密码
        private $dbname;        //数据接名
        private $charset;        //字符集
        private $link;                //连接对象
        private static $instance;
        private function __construct($param) {
                $this->initParam($param);
                $this->initConnect();
        }
        private function __clone() {
               
        }
        //获取单例
        public static function getInstance($param=array()) {
                if(!self::$instance instanceof self)
                        self::$instance=new self($param);
                return self::$instance;
        }
        //初始化参数
        private function initParam($param) {
                $this->host=$param['host']??'127.0.0.1';
                $this->port=$param['port']??'3306';
                $this->user=$param['user']??'';
                $this->pwd=$param['pwd']??'';
                $this->dbname=$param['dbname']??'';
                $this->charset=$param['charset']??'utf8';
        }
        //连接数据库
        private function initConnect() {
                $this->link=@mysqli_connect($this->host,$this->user,$this->pwd,$this->dbname);
                if(mysqli_connect_error()){
                        echo '数据库连接失败<br>';
                        echo '错误信息:'.mysqli_connect_error(),'<br>';
                        echo '错误码:'.mysqli_connect_errno(),'<br>';
                        exit;
                }
                mysqli_set_charset($this->link,$this->charset);
        }
        //执行数据库的增、删、改、查
        private function execute($sql) {
                if(!$rs=mysqli_query($this->link,$sql)){
                        echo 'SQL语句执行失败<br>';
                        echo '错误信息:'.mysqli_error($this->link),'<br>';
                        echo '错误码:'.mysqli_errno($this->link),'<br>';
                        echo '错误的SQL语句:'.$sql,'<br>';
                        exit;
                }
                return $rs;
        }
        /**
        *执行增、删、改
        *@return bool 成功返回true,失败返回false
        */
        public function exec($sql) {
                $key=substr($sql,0,6);
                if(in_array($key,array('insert','update','delete')))
                        return $this->execute($sql);
                else{
                        echo '非法访问<br>';
                        exit;
                }

        }
        //获取自动增长的编号
        public function getLastInsertId() {
                return mysqli_insert_id($this->link);
        }
}

//测试
//配置参数
$param=array(
        'user'                =>        'root',
        'pwd'                =>        'root',
        'dbname'        =>        'data'
);
//获取单例
$db=MySQLDB::getInstance($param);
//更新
//$db->exec("update news set title='青草' where id=2");
//插入
if($db->exec("insert into news values (null,'aa','bb',unix_timestamp())"))
        echo '编号是:'.$db->getLastInsertId();

页: [1]
查看完整版本: php封装MySQL的数据操作的功能执行增、删、改操作