Mysql 数据库访问类

2016-02-19 10:28 3 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐Mysql 数据库访问类,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

/**
* @Purpose: Mysql数据库访问类
* @Package:
* @Author: lisen@sellingclub.cn
* @Modifications:
* @See:
* @Time: 2008.10.10
*/
class DB_MYSQL
{
//============================================================
private $Host = 'localhost';
private $Database = 'db_name';
private $User = 'user';
private $Password = 'password';
//============================================================
private $Link_Id = 0; //数据库连接
private $Query_Id = 0; //查询结果
private $Row_Result = array(); //结果集组成的数组
private $Field_Result = array(); //结果集字段组成的数组
private $Affected_Rows; //影响的行数
private $Rows; //结果集中记录的行数
private $Fields; //结果集中字段数
private $Row_Postion = 0; //记录指针位置索引
public $Insert_Id = 0;
//************************************************************
/**** 构造函数 ****/
function __construct()
{
$this-connect();
}
/**** 析构函数 ****/
function __destruct()
{
@mysql_free_result($this-Query_Id);
mysql_close($this-Link_Id);
}
/**** 连接服务器,选择数据库 ****/
function connect($Database = '',$Host = '',$User = '',$Password = '')
{
$Database = $Database == '' ? $this-Database : $Database;
$Host = $Host == '' ? $this-Host : $Host;
$User = $User == '' ? $this-User : $User;
$Password = $Password == '' ? $this-Password : $Password;
//-----------------------------------------------------------//
if(0 == $this-Link_Id)
{
$this-Link_Id = @mysql_pconnect($Host,$User,$Password);
if(!$this-Link_Id)
{
$this-halt('连接数据库服务端失败!');
}
if(!mysql_select_db($this-Database,$this-Link_Id))
{
$this-halt('不能打开指定的数据库:'.$this-Database);
}
}
return $this-Link_Id;
}
/**** 释放内存 ****/
function free()
{
if(@mysql_free_result($this-Query_Id))
{
unset($this-Row_Result);
}
$this-Query_Id = 0;
}
/**** 执行查询 ****/
function query($Query_String)
{
//释放上次查询内存
if($this-Query_Id)
{
$this-free();
}
if(0 == $this-Link_Id)
{
$this-connect();
}
//设置中文字符集
@mysql_query('set names gb2312');
$this-Query_Id = mysql_query($Query_String,$this-Link_Id);
$this-Insert_Id = mysql_insert_id();
if(!$this-Query_Id)
{
$this-halt('SQL查询语句出错:'.$Query_String);
}
@mysql_query('set names gb2312');
return $this-Query_Id;
}
/**** 将结果集指针指向指定行 ****/
function seek($pos)
{
if(@mysql_data_seek($this-Query_Id,$pos))
{
$this-Row_Position = $pos;
return true;
}
else
{
$this-halt('定位结果集发生错误!');
return false;
}
}
/**** 返回结果集组成的数组 ****/
function get_rows_array()
{
$this-get_rows();
for($i = 0; $i $this-Rows; $i++)
{
if(!mysql_data_seek($this-Query_Id,$i))
{
$this-halt('mysql_data_seek 查询出错!');
}
$this-Row_Result[$i] = mysql_fetch_array($this-Query_Id);
}
return $this-Row_Result;
}
/**** 返回结果集字段组成的数组 ****/
function get_fields_array()
{
$this-get_fields();
for($i = 0; $i $this-Fields; $i++)
{
$obj = mysql_fetch_field($this-Query_Id,$i);
$this-Field_Result[$i] = $obj-name;
}
return $this-Field_Result;
}
/**** 返回影响记录数 ****/
function get_affected_rows()
{
$this-Affected_Rows = mysql_affected_rows($this-Link_Id);
return $this-Affected_Rows;
}
/**** 返回结果集中的记录数 ****/
function get_rows()
{
$this-Rows = mysql_num_rows($this-Query_Id);
return $this-Rows;
}
/**** 返回结果集中的字段个数 ****/
function get_fields()
{
$this-Fields = mysql_num_fields($this-Query_Id);
return $this-Fields;
}
/**** 执行sql语句并返回由查询结果中第一行记录组成的数组 ****/
function fetch_one_array($sql)
{ @mysql_query('set names gb2312');
$this-query($sql);
return mysql_fetch_array($this-Query_Id);
}
/**** 打印错误信息 ****/
function halt($msg)
{
$this-Error = mysql_error();
printf("font style='font-family:Arial,宋体;font-size:12px;' b数据库发生错误:/b %s n",$msg);
printf("MySQL 返回错误信息:/b %s n",$this-Error);
printf("错误页面:font style='color:#0000EE;text-decoration:underline'%s/font n",$_SERVER['PHP_SELF']);
printf(" 请将错误信息提交到系统管理员或网站程序员处理! n");
die('bfont color=red脚本终止/font/b/font');
}
}

来源:http://www.tulaoshi.com/n/20160219/1594775.html

延伸阅读
本文描述了MySQL,一种利用第三方数据库开发电子贸易和其它复杂、动态网站的有效工具。MySQL 是一种快速、多线程和全功能的 SQL服务器。除了描述MySQL系统的基本体系结构以外,本文还提供了以Tcl和C++编写的简单示例,帮助您开发支持数据库的Web应用。 一个必须存储或访问大量信息的应用程序可以从使用第三方数据库产品中受益匪浅。在...
innodb表正好相反;行级锁表 互联网服务,不算支付性的服务外,互动产品,新闻系统等等一般都是读多,写少。用myisam表比较合适。 表的设计 定长表:所有列的字段长度都是定长的。可以去查mysql的手册不定长字段是VARCHAR、BLOB或TEXT。int char都是定长的,定长表占用空间会大。 动态表:就是字段不是都定长的。 定长表要比动态表检索速度快...
在应用程序的设计中,数据库的访问是非常重要的,我们通常需要将对数据库的访问集中起来,以保证良好的封装性和可维护性。在.Net中,数据库的访问,对于微软自家的SqlServer和其他数据库(支持OleDb),采用不同的访问方法,这些类分别分布于System.Data.SqlClient和System.Data.OleDb名称空间中。微软后来又推出了专门用于访问Oracle数据...
标签: MySQL mysql数据库
在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事! 备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(...
这是我前段时间学数据库时做的一个小程序,采用DAO访问ACCESS数据库,程序的主界面如下,控制相对来说很是简单,实现了数据库的基本操作。如图一所示: 几点说明: 在程序中使用了CButtonStyle这个免费类库,它可以实现带位图的按位,这里是以加载图标的方式操作的,在InitButtonSytle()中,为了使代码更短小,用循环实现了图...

经验教程

197

收藏

67
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部