-
通用mysql数据库连接类代码
数据库连接是一种有限的昂贵的资源,数据库连接影响到程序的性能指标,数据库连接池正是针对这个问题提出来的,数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏,这项技术能明显提高对数据库操作的性能.
通用mysql数据库连接类代码如下:
- /*
- * created on 2010-3-8
- * make by:suniteboy
- * my first mysql class
- *
- */
- class mysql{
- private $server ="";
- private $user ="";
- private $pwd ="";
- private $database ="";
- private $linkmode = 1; //连接模式,0表示普通连接,1表示永久连接
- private $conn = 0;
- private $sql =""; //sql语句
- private $result =""; //query查询结果
- private $record =""; //保存记录
- //============================================
- // 构造函数
- //============================================
- public function __construct($server,$user,$pwd,$database,$charset="utf8",$linkmode=0)
- {
- if(emptyempty ( $server )| emptyempty( $user ) | emptyempty( $database ))
- {
- $this->show_error("连接信息不完整,请检查是否提供了服务器地址,用户名以及连接的数据库信息");
- return 0;
- }
- $this->server = $server;
- $this->user = $user;
- $this->pwd = $pwd;
- $this->database = $database;
- $this->charset = $charset;
- $this->linkmode = $linkmode;
- $this->connect();
- }
- //============================================
- // 连接函数
- //============================================
- public function connect()
- {
- $this->conn = $this->linkmode?mysql_pconnect($this->server,$this->user,$this->pwd):
- mysql_connect($this->server,$this->user,$this->pwd);
- if(!$this->conn)
- {
- $this->show_error('无法连接服务器');
- return 0;
- }
- if(!mysql_select_db($this->database))
- {
- $this->show_error('无法连接数据库'.$this->database);
- return 0;
- }
- // $this->query('set names '.$this->charset);
- return $this->conn;
- }
- //============================================
- // mysql查询函数
- //============================================
- public function query($sql)
- {
- if(emptyempty($sql))
- {
- $this->show_error('sql语句为空');
- return 0;
- }
- $this->sql = preg_replace('/ {2,}/',' ',trim($sql));
- $this->result = mysql_query($this->sql,$this->conn);
- if(!$this->result)
- {
- $this->show_error('sql语句错误',true);
- return 0;
- }
- return $this->result;
- }
- //============================================
- // 函数
- //============================================
- public function select_db($dbname)
- {
- return mysql_select_db($dbname);
- }
- public function fetch_array($query,$result_type=mysql_assoc)
- {
- return mysql_fetch_array($query,$result_type);
- }
- public function fetch_row($query)
- {
- return mysql_fetch_row($query);
- }
- //============================================
- // 取得前一次mysql操作所影响到的记录行数
- //============================================
- public function affected_rows()
- {
- return mysql_affected_rows();
- }
- public function num_fields($query)
- {
- return mysql_num_fields($query);
- }
- public function num_rows($query)
- {
- return @mysql_num_rows($query);
- }
- public function insert_id()
- {
- return mysql_insert_id();
- }
- public function close()
- {
- return mysql_close();
- }
- //============================================
- // 从记录中取出一条结果
- //============================================
- public function getone($sql)
- {
- $res = $this->query($sql);
- if($res!==false)
- {
- $row = mysql_fetch_row($res);
- if($row!==false)
- {
- return $row;
- }
- else
- {
- return '';
- }
- }
- else
- {
- return false;
- }
- }
- //============================================
- // 从记录中取出所有结果
- //============================================
- public function getall($sql)
- {
- $res = $this->query($sql);
- if($res!==false)
- {
- $arr = array();
- while($row = mysql_fetch_assoc($res))
- {
- $arr[] = $row;
- }
- return $arr;
- }
- else
- {
- return false;
- }
- }
- //============================================
- // 错误提示函数
- //============================================
- public function show_error($msg='',$sql=false)
- {
- $err = '['.mysql_errno().']'.mysql_error();
- if($sql) $sql='sql语句:'.$this->sql;
- if($msg=='')
- {
- echo $err;
- echo "</br>";
- }
- elseif($sql &&$msg)
- {//开源代码phpfensi.com
- echo $msg;
- echo "</br>";
- echo $sql;
- }
- else
- {
- echo $msg;
- echo "</br>";
- }
- }
- }
出处:http://www.phpfensi.com/php/20140911/5430.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.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式