《MYSQL教程Mysql 数据库访问类》要点:
本文介绍了MYSQL教程Mysql 数据库访问类,希望对您有用。如果有疑问,可以联系我们。
			           
/** 
* @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>'); 
} 
}
转载请注明本页网址:
http://www.vephp.com/jiaocheng/4908.html