Mysql 数据库访问类

时间:2024-01-15 00:31:41 

/**
* @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('<b><font color=red>脚本终止</font></b></font>');
}
}

标签:Mysql,数据库,访问类
0
投稿

猜你喜欢

  • 详解如何修改jupyter notebook的默认目录和默认浏览器

    2022-07-01 14:34:54
  • windows下安装Python虚拟环境virtualenvwrapper-win

    2023-12-23 11:24:08
  • 详解Python logging调用Logger.info方法的处理过程

    2023-03-14 19:45:37
  • Golang中goroutine和channel使用介绍深入分析

    2023-07-07 16:51:48
  • golang中defer的关键特性示例详解

    2023-08-06 06:12:45
  • iscroll动态加载数据完美解决方法

    2024-04-10 13:59:01
  • Python使用cx_Oracle调用Oracle存储过程的方法示例

    2021-01-26 19:37:28
  • 从数据行入手保护SQL Server数据安全

    2009-04-13 10:28:00
  • 如何读取一个.ini文件?

    2009-11-18 20:58:00
  • 深入研究Application和Session对象

    2008-10-13 08:30:00
  • 教你如何使用php session

    2023-11-15 06:28:01
  • Python matplotlib实现折线图的绘制

    2022-05-03 11:14:58
  • python 重定向获取真实url的方法

    2022-10-25 03:24:46
  • js 仿Photoshop鼠标滚轮控制输入框取值(修正兼容Chrome)

    2010-02-05 12:27:00
  • JS实现给对象动态添加属性的方法

    2024-04-22 13:07:07
  • Python Flask框架模块安装级使用介绍

    2023-05-06 19:28:27
  • Python采集猫眼两万条数据 对《无名之辈》影评进行分析

    2021-07-20 19:04:38
  • python3 实现除法结果为整数

    2023-06-27 20:08:22
  • python实现趣味图片字符化

    2022-01-22 15:29:35
  • javascript适合移动端的日期时间拾取器

    2023-07-02 05:25:48
  • asp之家 网络编程 m.aspxhome.com