php mysql数据库连接类程序代码

 代码如下 复制代码

class cls_mysql{
var $querynum = 0;
var $link;
var $histories;

var $dbhost;
var $dbuser;
var $dbpw;
var $dbcharset;
var $pconnect;
var $tablepre;
var $time;

var $goneaway = 5;

function connect($dbhost, $dbuser, $dbpw, $dbname = '', $dbcharset = '', $pconnect = 0, $tablepre='', $time = 0) {
$this->dbhost = $dbhost;
$this->dbuser = $dbuser;
$this->dbpw = $dbpw;
$this->dbname = $dbname;
$this->dbcharset = $dbcharset;
$this->pconnect = $pconnect;
$this->tablepre = $tablepre;
$this->time = $time;

if($pconnect) {
if(!$this->link = mysql_pconnect($dbhost, $dbuser, $dbpw)) {
$this->halt('can not connect to mysql server');
}
} else {
if(!$this->link = mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('can not connect to mysql server');
}
}

if($this->version() > '4.1') {
if($dbcharset) {
mysql_query("set character_set_connection=".$dbcharset.", character_set_results=".$dbcharset.", character_set_client=binary", $this->link);
}

if($this->version() > '5.0.1') {
mysql_query("set sql_mode=''", $this->link);
}
}

if($dbname) {
mysql_select_db($dbname, $this->link);
}

}

function fetch_array($query, $result_type = mysql_assoc) {
return mysql_fetch_array($query, $result_type);
}

function result_first($sql) {
$query = $this->query($sql);
return $this->result($query, 0);
}

function fetch_first($sql) {
$query = $this->query($sql);
return $this->fetch_array($query);
}

function fetch_all($sql, $id = '') {
$arr = array();
$query = $this->query($sql);
while($data = $this->fetch_array($query)) {
$id ? $arr[$data[$id]] = $data : $arr[] = $data;
}
return $arr;
}

function cache_gc() {
$this->query("delete from {$this->tablepre}sqlcaches where expiry<$this->time");
}

function query($sql, $type = '', $cachetime = false) {
$func = $type == 'unbuffered' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql, $this->link)) && $type != 'silent') {
$this->halt('mysql query error', $sql);
}
$this->querynum++;
$this->histories[] = $sql;
return $query;
}

function affected_rows() {
return mysql_affected_rows($this->link);
}

function error() {
return (($this->link) ? mysql_error($this->link) : mysql_error());
}

function errno() {
return intval(($this->link) ? mysql_errno($this->link) : mysql_errno());
}

function result($query, $row) {
$query = @mysql_result($query, $row);
return $query;
}

function num_rows($query) {
$query = mysql_num_rows($query);
return $query;
}

function num_fields($query) {
return mysql_num_fields($query);
}

function free_result($query) {
return mysql_free_result($query);
}

function insert_id() {
return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("select last_insert_id()"), 0);
}

function fetch_row($query) {
$query = mysql_fetch_row($query);
return $query;
}

function fetch_fields($query) {
return mysql_fetch_field($query);
}

function version() {
return mysql_get_server_info($this->link);
}

function close() {
return mysql_close($this->link);
}

function halt($message = '', $sql = '') {
$error = mysql_error();
$errorno = mysql_errno();
if($errorno == 2006 && $this->goneaway-- > 0) {
$this->connect($this->dbhost, $this->dbuser, $this->dbpw, $this->dbname, $this->dbcharset, $this->pconnect, $this->tablepre, $this->time);
$this->query($sql);
} else {
$s = '<b>error:</b>'.$error.'<br />';
$s .= '<b>errno:</b>'.$errorno.'<br />';
$s .= '<b>sql:</b>:'.$sql;
exit($s);
}
}
}

时间: 2024-10-24 22:18:58

php mysql数据库连接类程序代码的相关文章

mysql 数据库连接类

mysql教程 数据库教程连接类  /*  提供一款简单实用的mysql php教程数据库连接代码哦,如果你正是php 入门者可以进来看看这款数据库代码是不是你要找的吧.  */ class mysql{     private $host;     private $user;     private $pass;     private $dbname;     function __construct($host,$user,$pass,$dbname){         $this->h

一个常用php mysql数据库连接类

 代码如下 复制代码 <?php  class ConnectionMySQL{      //主机      private $host="localhost";      //数据库的username      private $name="root";      //数据库的password      private $pass="";      //数据库名称      private $table="phptest&qu

一款实用的php mysql数据库连接类

 本款数据库连接类,他会自动加载sql防注入功能,过滤一些敏感的sql查询关键词,同时还可以增加判断字段 show table status的性质与show table类 获取数据库所有表名等.*/ @ini_set('mysql.trace_mode','off'); class mysql {  public $dblink;  public $pconnect;  private $search = array('/union(s*(/*.**/)?s*)+select/i', '/loa

thinkPHP 分页写成自己分页类程序代码

我们行来看我自己做的一个实例  代码如下 复制代码 CREATE TABLE IF NOT EXISTS `think_form` (   `id` smallint(4) unsigned NOT NULL AUTO_INCREMENT,   `title` varchar(255) NOT NULL,   `content` varchar(255) NOT NULL,   `create_time` int(11) unsigned NOT NULL,   PRIMARY KEY (`id

通用mysql数据库连接类代码

数据库连接是一种有限的昂贵的资源,数据库连接影响到程序的性能指标.数据库连接池正是针对这个问题提出来的.数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个:释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏.这项技术能明显提高对数据库操作的性能. /*  * created on 2010-3-8  * make by:suniteboy  * my first mysql class  *  */

二款php数据库备份类程序代码

下面看下使用方法:  代码如下 复制代码 <?php error_reporting(0);//消灭万恶的php报警提示 //设定邮箱 $options = array('email' => array('email1', 'email2'), 'folder' => './backup/', 'mysql' => array('localhost', 'user', 'password', 'db'));   $b = new Backup($options);     // 提

一个无限分类的处理类程序代码

 代码如下 复制代码 <?php /* 名称: 对分类操作的业务逻辑封装 * * 作者: 帅的像人渣 QQ: 1191391 E-mail: netcat2@21cn.com * * 完成日期: 2003-12-18 13:33 * * 说明: 本类中引用的其它类(DB.Table.Item)均未提供,所以本类只能做个参考,不能直接应用 * 不是本人小气不提供其它类,实在是因为那些都是一两年前写的类,很烂.怕大家看后对大 * 造成误导. 在此发表这个类,只希望大家能从中学到一些程序设计的方法.

Php Aes加密类程序代码分享

AES加密算法 – 算法原理 AES 算法基于排列和置换运算.排列是对数据重新进行安排,置换是将一个数据单元替换为另一个.AES 使用几种不同的方法来执行排列和置换运算. AES 是一个迭代的.对称密钥分组的密码,它可以使用128.192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据.与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据.通过分组密码返回的加密数据的位数与输入数据相同.迭代加密使用一个循环结构,在该循环中重复置换和替换输入数据.  代码如

mysql数据库连接类

 代码如下 复制代码 class mysql {       public $sqlserver = 'localhost';       public $sqluser = 'root';       public $sqlpassword = '';       public $database;       public $last_query = '';       private $connection;       private $query_result;       publi