h5MYSQL并进行增删查改_封装MySQL的单例,连接数据库并对数据进行增删改查操作...

这篇博客介绍了一个封装的MySQL单例类,用于连接数据库并执行增、删、改、查操作。通过设置参数如主机、端口、用户名、密码和数据库名,实例化该类后可以方便地进行数据操作,包括执行SQL语句,获取自动增长的编号等。示例代码展示了如何使用这个单例类进行更新、插入、删除和查询数据。
摘要由CSDN通过智能技术生成

//私有的构造方法用来阻止在类的外部实例化private function __construct($param){$this->initData($param);$this->connectDB();

}//私有的__clone阻止在类的外部clone对象

private function__clone(){

}//获取单例,公有的静态方法用来获取对象的单例

static function getInstance($param){if(!self::$instanceinstanceof self){

self::$instance = new self($param);

}return self::$instance;

}//初始化参数

private function initData($param = array()){$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 functionconnectDB(){$this->link =@mysqli_connect($this->host,$this->user,$this->pwd,$this->dbname);if(!$this->link){echo '连接数据库失败';echo '错误:'.mysqli_connect_error,'
';echo '错误码:'.mysqli_connect_errno,'
';exit;

}

mysqli_set_charset($this->link,$this->charset);

}//执行数据库的增、删、改、查语句

private function executeSQL($sql){$rs = mysqli_query($this->link,$sql);if(!$rs){echo '执行sql语句失败';echo '错误:'.mysqli_error($this->link);echo '错误码:'.mysqli_errno($this->link);exit;

}return $rs;

}//执行增、删、改 并返回执行结果(true 或 false)

function executeZSG($sql){if(in_array(substr($sql,0,6),array('delete','update','insert'))){return $this->executeSQL($sql);

}else{echo '非法访问
';exit;

}

}//获取自动增长的编号

functiongetIncrement(){return mysqli_insert_id($this->link);

}//执行查询语句

private function query($sql){if(substr($sql,0,4) == 'desc' || substr($sql,0,4) == 'show' || substr($sql,0,6) == 'select'){return $this->executeSQL($sql);

}else{echo '非法访问
';exit;

}

}//执行查询语句,返回二维数组

function fetchAll($sql,$type='assoc'){$rs = $this->query($sql);$type = $this->getType($type);return mysqli_fetch_all($rs,$type);

}//匹配一维数组

function fetchRow($sql,$type='assoc'){$list = $this->fetchAll($sql,$type);if(!empty($list)){return $list[0];

}return array();

}//匹配一行一列

function fetchColumn($sql){$list = $this->fetchAll($sql,'num');if(!empty($list)){return $list[0];

}return null;

}//获取匹配类型

private function getType($type){switch($type){case 'num':

returnMYSQLI_NUM;case 'both':

returnMYSQLI_BOTH;default:

returnMYSQLI_ASSOC;

}

}

}$param = array('user' => 'root',

'pwd' => 'root',

'dbname' => 'mycool');//获取单例

$db=MySQLDB::getInstance($param);//var_dump($db);

//更新

// $db->executeZSG("update b set age=122 where id=11");

//插入

// if($db->executeZSG("insert into b values (null,55,66,22)"))

// echo '编号是:'.$db->getIncrement();

// 删除

// if($db->executeZSG("delete from b where id=11"))

// echo '删除成功';

//查询

// $list=$db->fetchAll('select * from b','assoc');

// var_dump($list);

// $list=$db->fetchRow('select * from b where id=9','num');

// var_dump($list);

// $list=$db->fetchColumn('select count(*) from b','assoc');

// var_dump($list);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值