PHP訪問(wèn)MYSQL數(shù)據(jù)庫(kù)封裝類(lèi)(附函數(shù)說(shuō)明)
<?php
/*
MYSQL 數(shù)據(jù)庫(kù)訪問(wèn)封裝類(lèi)
MYSQL 數(shù)據(jù)訪問(wèn)方式,php4支持以mysql_開(kāi)頭的過(guò)程訪問(wèn)方式,php5開(kāi)始支持以mysqli_開(kāi)頭的過(guò)程和mysqli面向?qū)ο?
訪問(wèn)方式,本封裝類(lèi)以mysql_封裝
數(shù)據(jù)訪問(wèn)的一般流程:
1,連接數(shù)據(jù)庫(kù) mysql_connect or mysql_pconnect
2,選擇數(shù)據(jù)庫(kù) mysql_select_db
3,執(zhí)行SQL查詢 mysql_query
4,處理返回的數(shù)據(jù) mysql_fetch_array mysql_num_rows mysql_fetch_assoc mysql_fetch_row etc
*/
class db_mysql
{
var $querynum = 0 ; //當(dāng)前頁(yè)面進(jìn)程查詢數(shù)據(jù)庫(kù)的次數(shù)
var $dblink ; //數(shù)據(jù)庫(kù)連接資源
//鏈接數(shù)據(jù)庫(kù)
function connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0 , $halt=true)
{
$func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect' ;
$this->dblink = @$func($dbhost,$dbuser,$dbpw) ;
if ($halt && !$this->dblink)
{
$this->halt("無(wú)法鏈接數(shù)據(jù)庫(kù)!");
}
//設(shè)置查詢字符集
mysql_query("SET character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this->dblink) ;
//選擇數(shù)據(jù)庫(kù)
$dbname && @mysql_select_db($dbname,$this->dblink) ;
}
//選擇數(shù)據(jù)庫(kù)
function select_db($dbname)
{
return mysql_select_db($dbname,$this->dblink);
}
//執(zhí)行SQL查詢
function query($sql)
{
$this->querynum++ ;
return mysql_query($sql,$this->dblink) ;
}
//返回最近一次與連接句柄關(guān)聯(lián)的INSERT,UPDATE 或DELETE 查詢所影響的記錄行數(shù)
function affected_rows()
{
return mysql_affected_rows($this->dblink) ;
}
//取得結(jié)果集中行的數(shù)目,只對(duì)select查詢的結(jié)果集有效
function num_rows($result)
{
return mysql_num_rows($result) ;
}
//獲得單格的查詢結(jié)果
function result($result,$row=0)
{
return mysql_result($result,$row) ;
}
//取得上一步 INSERT 操作產(chǎn)生的 ID,只對(duì)表有AUTO_INCREMENT ID的操作有效
function insert_id()
{
return ($id = mysql_insert_id($this->dblink)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0);
}
//從結(jié)果集提取當(dāng)前行,以數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回
function fetch_row($result)
{
return mysql_fetch_row($result) ;
}
//從結(jié)果集提取當(dāng)前行,以字段名為key表示的關(guān)聯(lián)數(shù)組形式返回
function fetch_assoc($result)
{
return mysql_fetch_assoc($result);
}
//從結(jié)果集提取當(dāng)前行,以字段名和數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回
function fetch_array($result)
{
return mysql_fetch_array($result);
}
//關(guān)閉鏈接
function close()
{
return mysql_close($this->dblink) ;
}
//輸出簡(jiǎn)單的錯(cuò)誤html提示信息并終止程序
function halt($msg)
{
$message = "<html>\n<head>\n" ;
$message .= "<meta content='text/html;charset=gb2312'>\n" ;
$message .= "</head>\n" ;
$message .= "<body>\n" ;
$message .= "數(shù)據(jù)庫(kù)出錯(cuò):".htmlspecialchars($msg)."\n" ;
$message .= "</body>\n" ;
$message .= "</html>" ;
echo $message ;
exit ;
}
}
?>
- PHP封裝mysqli基于面向?qū)ο蟮膍ysql數(shù)據(jù)庫(kù)操作類(lèi)與用法示例
- PHP封裝的mysqli數(shù)據(jù)庫(kù)操作類(lèi)示例
- PHP基于MySQLI函數(shù)封裝的數(shù)據(jù)庫(kù)連接工具類(lèi)【定義與用法】
- php基于PDO實(shí)現(xiàn)功能強(qiáng)大的MYSQL封裝類(lèi)實(shí)例
- php基于單例模式封裝mysql類(lèi)完整實(shí)例
- php封裝的mysqli類(lèi)完整實(shí)例
- php mysql 封裝類(lèi)實(shí)例代碼
- php封裝的連接Mysql類(lèi)及用法分析
- php實(shí)現(xiàn)mysql封裝類(lèi)示例
- php鏈?zhǔn)讲僮鱩ysql數(shù)據(jù)庫(kù)(封裝類(lèi)帶使用示例)
相關(guān)文章
解決FastCGI 進(jìn)程超過(guò)了配置的活動(dòng)超時(shí)時(shí)限的問(wèn)題
本篇文章是對(duì)解決FastCGI 進(jìn)程超過(guò)了配置的活動(dòng)超時(shí)時(shí)限的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-07-07基于PHP導(dǎo)出Excel的小經(jīng)驗(yàn) 完美解決亂碼問(wèn)題
本篇文章是對(duì)PHP導(dǎo)出Excel亂碼問(wèn)題的解決方法就行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php正則表達(dá)匹配中文問(wèn)題分析小結(jié)
本文章分析了在php中正則表達(dá)式對(duì)中文的支持問(wèn)題,一般情況下我們可會(huì)能簡(jiǎn)單利用我上面的正則來(lái)驗(yàn)證中文,后面我分析了關(guān)于兼容gb2312,utf-8和表達(dá)式 ^[\\x7f-\\xff]+$ 可以完全搞定中文不兼容的問(wèn)題2012-03-03PHP如何獲取Cookie并實(shí)現(xiàn)模擬登錄
這篇文章主要介紹了PHP如何獲取Cookie并實(shí)現(xiàn)模擬登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07PHP中array_map與array_column之間的關(guān)系分析
這篇文章主要介紹了PHP中array_map與array_column之間的關(guān)系分析,對(duì)于PHP初學(xué)者來(lái)說(shuō)是比較實(shí)用的概念,需要的朋友可以參考下2014-08-08高質(zhì)量PHP代碼的50個(gè)實(shí)用技巧必備(下)
這篇文章主要為大家分享了50個(gè)高質(zhì)量PHP代碼的實(shí)用技巧,大家必備的php實(shí)用代碼,感興趣的小伙伴們可以參考一下2016-01-01用mysql_fetch_array()獲取當(dāng)前行數(shù)據(jù)的方法詳解
本篇文章是對(duì)使用mysql_fetch_array()獲取當(dāng)前行數(shù)據(jù)的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP隱形一句話后門(mén),和ThinkPHP框架加密碼程序(base64_decode)
今天一個(gè)客戶的服務(wù)器頻繁被寫(xiě)入一句話后門(mén),刪除了還有,原來(lái)在程序中加入了如下代碼,大家可以注意下base64_decode函數(shù)的參數(shù)。2011-11-11