本是一款大家常用的mysql數據庫類哦,下載下去看看吧。
class mySqlClass {//定義整個數據庫訪問類 mySqlClass
var $querynum = 0;//查詢次數變量
//打開服務器的連接------------------------------------------------------------------------------------------------------//
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0) {
//mysql_connect -- 打開一個到 MySQL 服務器的連接
//mysql_pconnect -- 打開一個到 MySQL 服務器的持久連接
//mysql_pconnect() 和 mysql_connect() 非常相似,但有兩個主要區別。
//首先,當連接的時候本函數將先嘗試尋找一個在同一個主機上用同樣的用戶名和密碼已經打開的(持久)連接,如果找到,則返回此連接標識而不打開新連接。
//其次,當腳本執行完畢後到 SQL 服務器的連接不會被關閉,此連接將保持打開以備以後使用(mysql_close() 不會關閉由 mysql_pconnect() 建立的連接)。
//判斷是否開啟持久連接設置,開啟則使用持久連接,未開啟則使用一般連接
if($pconnect) {
if(!@mysql_pconnect($dbhost, $dbuser, $dbpw)) {
$this->halt('1');
}
} else {
if(!@mysql_connect($dbhost, $dbuser, $dbpw)) {
$this->halt('1');
}
}
//設置字符編碼如果數據庫版本大於4.1且全局變量中字符集參數不為空---------------------------------------------------------//
if($this->version() > '4.1') {
//$charset = 'gbk';
$charset = 'utf-8';
$dbcharset = '';
if(!$dbcharset && in_array(strtolower($charset), array('gbk', 'big5', 'utf-8'))) {
$dbcharset = str_replace('-', '', $charset);
}
//mysql_query -- 發送一條 MySQL 查詢
//設置NAMES參數為相應字符集參數值,避免PHP讀取mysql數據庫時出現中文亂碼
if($dbcharset) {
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary");
}
//如果數據庫版本大於5.0設置sql_mode參數為空
if($this->version() > '5.0.1') {
mysql_query("SET sql_mode=''");
}
}
if($dbname) {//如果數據庫名存在
//mysql_select_db -- 選擇 MySQL 數據庫
//如果選擇數據庫未成功
mysql_select_db($dbname);
}
}
//mysql_select_db -- 選擇 MySQL 數據庫---------------------------------------------------------------------//
function select_db($dbname) {
return mysql_select_db($dbname);
}
//讀取一條數據記錄函數---------------------------------------------------------------------//
//mysql_fetch_array -- 從結果集中取得一行作為關聯數組,或數字數組,或二者兼有
//mysql_fetch_array() 中可選的第二個參數 result_type 是一個常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。
//MYSQL_ASSOC 返回的數據列使用字段名作為數組的索引名。
//MYSQL_BOTH 返回的數據列使用字段名及數字索引作為數組的索引名。
//MYSQL_NUM 返回的數據列使用數字索引作為數組的索引名。索引從 0 開始,表示返回結果的第一個字段。
function fetch_array($query, $result_type = MYSQL_ASSOC) {
return mysql_fetch_array($query, $result_type);
}
//查詢數據庫函數---------------------------------------------------------------------//
function query($sql, $type = '') {
$func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ?
'mysql_unbuffered_query' : 'mysql_query';
if(!($query = $func($sql)) && $type != 'SILENT') {
$this->halt('0');
}
//查詢次數+1
$this->querynum++;
//返回查詢結果資源
return $query;
}
//返回影響記錄數---------------------------------------------------------------------//
//如果該函數成功執行,將返回記錄行數;如果失敗,將返回“-1”。
function affected_rows() {
return mysql_affected_rows();
}
//返回上一個 MySQL 操作產生的文本錯誤信息---------------------------------------------//
function error() {
return mysql_error();
}
//返回上一個 MySQL 操作產生的文本錯誤信息 整數型態 ------------------------------------//
function errno() {
return intval(mysql_errno());
}
//mysql_result -- 返回結果集中的字段值---------------------------------------------//
function result($query, $row) {
$query = @mysql_result($query, $row);
return $query;
}
//mysql_num_rows -- 取得結果集中行的數目---------------------------------------------//
function num_rows($query) {
$query = mysql_num_rows($query);
return $query;
}
//mysql_num_fields -- 取得結果集中字段的數目---------------------------------------------//
function num_fields($query) {
return mysql_num_fields($query);
}
//mysql_free_result -- 釋放所使用的結果內存---------------------------------------------//
function free_result($query) {
return mysql_free_result($query);
}
//mysql_insert_id -- 取得上一步 INSERT 操作產生的 ID---------------------------------------------//
function insert_id() {
$id = mysql_insert_id();
return $id;
}
//mysql_fetch_row -- 從結果集中取得一行作為數值型數組---------------------------------------------//
function fetch_row($query) {
$query = mysql_fetch_row($query);
return $query;
}
//mysql_field_name -- 取得結果中指定字段的字段名---------------------------------------------//
function field_name($query,$num=0){
return mysql_field_name($query,$num);
}
//mysql_fetch_field -- 從結果集中取得列信息並作為對象返回 $num=0 表示第一個字段-------------------------------//
function fetch_fields($query,$num=0) {
return mysql_fetch_field($query,$num);
}
//mysql_get_server_info -- 取得 MySQL 服務器信息---------------------------------------------//
function version() {
$MySqlVer = mysql_get_server_info();
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = $this->result(($this->query("SELECT VERSION()")), 0);
}
if (empty($MySqlVer) || $MySqlVer==""){
$MySqlVer = '0';
}
return $MySqlVer;
}
//mysql_close -- 關閉 MySQL 連接---------------------------------------------------------------------//
function close() {
return @mysql_close();
}
//異常處理函數 halt ---------------------------------------------------------------------//
function halt($mess) {
global $DataBaseBadFlag;
//$dberror = $this->error();
//$dberrno = $this->errno(); //1114人員連接上限
if ($mess=="1"){
if ($DataBaseBadFlag!=1){
echo("<meta http-equiv='refresh'content=0;URL='pagedataerr.php'>");
}
else{
if (!@function_exists('phpEscape')){
require("escape.php");
}
echo phpEscape("Lock = false;location.href='pagedataerr.php';");
}
exit();
}
else{
return false;
}
}
}