-
PHP基于单例模式实现的mysql类
这篇文章主要介绍了PHP基于单例模式实现的mysql类,涉及PHP基于单例模式封装对MySQL数据库的连接及查询相关技巧,需要的朋友可以参考下。
本文实例讲述了PHP基于单例模式实现的mysql类,分享给大家供大家参考,具体如下:
- <?php
- defined('ACC')||exit('Access Denied');
- // 封装mysql操作类,包括连接功能,及查询功能.
- class mysql extends absdb{
- protected static $ins = null;
- protected $host; // 主机名
- protected $user; // 用户名
- protected $passwd; // 密码
- protected $db; // 数据库名
- protected $port; // 端口
- protected $conn = null;
- // 在内部操作,获得一个对象
- public static function getIns() {
- if(self::$ins === null) {
- self::$ins = new self();
- }
- $conf = conf::getIns();
- self::$ins->host = $conf->host;
- self::$ins->user = $conf->user;
- self::$ins->passwd = $conf->pwd;
- self::$ins->db = $conf->db;
- self::$ins->port = $conf->port;
- self::$ins->connect();
- self::$ins->select_db();
- self::$ins->setChar();
- return self::$ins;
- }
- // 不让外部做new操作,
- protected function __construct() {
- }
- // 连接数据库
- public function connect() {
- $this->conn = @mysql_connect($this->host,$this->user,$this->passwd,$this->port);
- if(!$this->conn) {
- $error = new Exception('数据库连不上',9);
- throw $error;
- }
- }
- // 发送sql查询
- public function query($sql) {
- $rs = mysql_query($sql,$this->conn);
- if(!$rs) {
- log::write($sql);
- }
- return $rs;
- }
- // 封装一个getAll方法
- // 参数:$sql
- // 返回: array,false
- public function getAll($sql) {
- $rs = $this->query($sql);
- if(!$rs) {
- return false;
- }
- $list = array();
- while($row = mysql_fetch_assoc($rs)) {
- $list[] = $row;
- }
- return $list;
- }
- // 封装一个getRow方法
- // 参数:$sql
- // 返回: array,false
- public function getRow($sql) {
- $rs = $this->query($sql);
- if(!$rs) {
- return false;
- }
- return mysql_fetch_assoc($rs);
- }
- // 封装一个getOne方法,
- // 参数: $sql
- // 返回: int,str(单一的值)
- public function getOne($sql) {
- $rs = $this->query($sql);
- if(!$rs) {
- return false;
- }
- $tmp = mysql_fetch_row($rs);
- return $tmp[0];
- }
- // 封装一个afftect_rows()方法
- // 参数:无
- // 返回 int 受影响行数
- public function affected_rows() {
- return mysql_affected_rows($this->conn);
- }
- // 返回最新生成的auto_increment列的值
- public function last_id() {
- return mysql_insert_id($this->conn);
- }
- // 选库函数
- public function select_db() {
- $sql = 'use ' . $this->db;
- return $this->query($sql);
- }
- // 设置字符集的函数
- public function setChar() {
- $sql = 'set names utf8';
- return $this->query($sql);
- }
- // 自动生成insert语句,update语句并执行
- public function autoExecute($data,$table,$act='insert',$where='') {
- if($act == 'insert') {
- $sql = 'insert into ' . $table . ' (';
- $sql .= implode(',',(array_keys($data)));
- $sql .= ') values (\'';
- $sql .= implode("','",array_values($data));
- $sql .= "')";
- } else if($act == 'update') {
- if(!trim($where)) {
- return false;
- }
- $sql = 'update ' . $table . ' set ';
- foreach($data as $k=>$v) {
- $sql .= $k;
- $sql .= '=';
- $sql .= "'".$v."',";
- }
- $sql = substr($sql,0,-1);
- $sql .= ' where ';
- $sql .= $where;
- } else {
- return false;
- }
- //return $sql;
- return $this->query($sql);
- }
- }
出处:http://www.phpfensi.com/php/20210705/17012.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式