區(qū)別是:
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到藍(lán)山網(wǎng)站設(shè)計(jì)與藍(lán)山網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請(qǐng)域名、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋藍(lán)山地區(qū)。
PHP采用pdo方式訪問(wèn)數(shù)據(jù)庫(kù)時(shí),您不必再使用再為它們封裝數(shù)據(jù)庫(kù)操作類,只需要使用PDO接口中的方法就可以對(duì)各種數(shù)據(jù)庫(kù)進(jìn)行操作。
類文件mysql.class.php:
?php
class?Mysql{
//數(shù)據(jù)庫(kù)連接返回值
private?$conn;
/**
*?[構(gòu)造函數(shù),返回值給$conn]
*?@param?[string]?$hostname?[主機(jī)名]
*?@param?[string]?$username[用戶名]
*?@param?[string]?$password[密碼]
*?@param?[string]?$dbname[數(shù)據(jù)庫(kù)名]
*?@param?[string]?$charset[字符集]
*?@return?[null]
*/
function?__construct($hostname,$username,$password,$dbname,$charset='utf8'){
$config?=?@mysql_connect($hostname,$username,$password);
if(!$config){
echo?'連接失敗,請(qǐng)聯(lián)系管理員';
exit;
}
$this-conn?=?$config;
$res?=?mysql_select_db($dbname);
if(!$res){
echo?'連接失敗,請(qǐng)聯(lián)系管理員';
exit;
}
mysql_set_charset($charset);
}
function?__destruct(){
mysql_close();
}
/**
*?[getAll?獲取所有信息]
*?@param?[string]?$sql?[sql語(yǔ)句]
*?@return?[array]?[返回二維數(shù)組]
*/
function?getAll($sql){
$result?=?mysql_query($sql,$this-conn);
$data?=?array();
if($result??mysql_num_rows($result)0){
while($row?=?mysql_fetch_assoc($result)){
$data[]?=?$row;
}
}
return?$data;
}
/**
*?[getOne?獲取單條數(shù)據(jù)]
*?@param?[string]?$sql?[sql語(yǔ)句]
*?@return?[array]?[返回一維數(shù)組]
*/
function?getOne($sql){
$result?=?mysql_query($sql,$this-conn);
$data?=?array();
if($result??mysql_num_rows($result)0){
$data?=?mysql_fetch_assoc($result);
}
return?$data;
}
/**
*?[getOne?獲取單條數(shù)據(jù)]
*?@param?[string]?$table?[表名]
*?@param?[string]?$data?[由字段名當(dāng)鍵,屬性當(dāng)鍵值的一維數(shù)組]
*?@return?[type]?[返回false或者插入數(shù)據(jù)的id]
*/
function?insert($table,$data){
$str?=?'';
$str?.="INSERT?INTO?`$table`?";
$str?.="(`".implode("`,`",array_keys($data))."`)?";
$str?.="?VALUES?";
$str?.=?"('".implode("','",$data)."')";
$res?=?mysql_query($str,$this-conn);
if($res??mysql_affected_rows()0){
return?mysql_insert_id();
}else{
return?false;
}
}
/**
*?[update?更新數(shù)據(jù)庫(kù)]
*?@param?[string]?$table?[表名]
*?@param?[array]?$data?[更新的數(shù)據(jù),由字段名當(dāng)鍵,屬性當(dāng)鍵值的一維數(shù)組]
*?@param?[string]?$where?[條件,‘字段名’=‘字段屬性’]
*?@return?[type]?[更新成功返回影響的行數(shù),更新失敗返回false]
*/
function?update($table,$data,$where){
$sql?=?'UPDATE?'.$table.'?SET?';
foreach($data?as?$key?=?$value){
$sql?.=?"`{$key}`='{$value}',";
}
$sql?=?rtrim($sql,',');
$sql?.=?"?WHERE?$where";
$res?=?mysql_query($sql,$this-conn);
if($res??mysql_affected_rows()){
return?mysql_affected_rows();
}else{
return?false;
}
}
/**
*?[delete?刪除數(shù)據(jù)]
*?@param?[string]?$table?[表名]
*?@param?[string]?$where?[條件,‘字段名’=‘字段屬性’]
*?@return?[type]?[成功返回影響的行數(shù),失敗返回false]
*/
function?del($table,$where){
$sql?=?"DELETE?FROM?`{$table}`?WHERE?{$where}";
$res?=?mysql_query($sql,$this-conn);
if($res??mysql_affected_rows()){
return?mysql_affected_rows();
}else{
return?false;
}
}
}
?
使用案例:
?php
//包含數(shù)據(jù)庫(kù)操作類文件
include?'mysql.class.php';
//設(shè)置傳入?yún)?shù)
$hostname='localhost';
$username='root';
$password='123456';
$dbname='aisi';
$charset?=?'utf8';
//實(shí)例化對(duì)象
$db?=?new?Mysql($hostname,$username,$password,$dbname);
//獲取一條數(shù)據(jù)
$sql?=?"SELECT?count(as_article_id)?as?count?FROM?as_article?where?as_article_type_id=1";
$count?=?$db-getOne($sql);
//獲取多條數(shù)據(jù)
$sql?=?"SELECT?*?FROM?as_article?where?as_article_type_id=1?order?by?as_article_addtime?desc?limit?$start,$limit";
$service?=?$db-getAll($sql);
//插入數(shù)據(jù)
$arr?=?array(
'as_article_title'='數(shù)據(jù)庫(kù)操作類',
'as_article_author'='rex',
);
$res?=?$db-insert('as_article',$arr);
//更新數(shù)據(jù)
$arr?=?array(
'as_article_title'='實(shí)例化對(duì)象',
'as_article_author'='Lee',
);
$where?=?"as_article_id=1";
$res?=?$db-update('as_article',$arr,$where);
//刪除數(shù)據(jù)
$where?=?"as_article_id=1";
$res?=?$db-del('as_article',$where);
?
復(fù)制代碼
代碼如下:
?php
/*
MYSQL
數(shù)據(jù)庫(kù)訪問(wèn)封裝類
MYSQL
數(shù)據(jù)訪問(wèn)方式,php4支持以mysql_開(kāi)頭的過(guò)程訪問(wèn)方式,php5開(kāi)始支持以mysqli_開(kāi)頭的過(guò)程和mysqli面向?qū)ο?/p>
訪問(wèn)方式,本封裝類以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
=
;
//當(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))
=
?
$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\nhead\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
class MySQL{
private $host; //服務(wù)器地址
private $name; //登錄賬號(hào)
private $pwd; //登錄密碼
private $dBase; //數(shù)據(jù)庫(kù)名稱
private $conn; //數(shù)據(jù)庫(kù)鏈接資源
private $result; //結(jié)果集
private $msg; //返回結(jié)果
private $fields; //返回字段
private $fieldsNum; //返回字段數(shù)
private $rowsNum; //返回結(jié)果數(shù)
private $rowsRst; //返回單條記錄的字段數(shù)組
private $filesArray = array(); //返回字段數(shù)組
private $rowsArray = array(); //返回結(jié)果數(shù)組
private $charset='utf8'; //設(shè)置操作的字符集
private $query_count=0; //查詢結(jié)果次數(shù)
static private $_instance; //存儲(chǔ)對(duì)象
//初始化類
private function __construct($host='',$name='',$pwd='',$dBase=''){
if($host != '') $this-host = $host;
if($name != '') $this-name = $name;
if($pwd != '') $this-pwd = $pwd;
if($dBase != '') $this-dBase = $dBase;
$this-init_conn();
}
//防止被克隆
private function __clone(){}
public static function getInstance($host='',$name='',$pwd='',$dBase=''){
if(FALSE == (self::$_instance instanceof self)){
self::$_instance = new self($host,$name,$pwd,$dBase);
}
return self::$_instance;
}
public function __set($name,$value){
$this-$name=$value;
}
public function __get($name){
return $this-$name;
}
//鏈接數(shù)據(jù)庫(kù)
function init_conn(){
$this-conn=@mysql_connect($this-host,$this-name,$this-pwd) or die('connect db fail !');
@mysql_select_db($this-dBase,$this-conn) or die('select db fail !');
mysql_query("set names ".$this-charset);
}
//查詢結(jié)果
function mysql_query_rst($sql){
if($this-conn == '') $this-init_conn();
$this-result = @mysql_query($sql,$this-conn);
$this-query_count++;
}
//取得字段數(shù)
function getFieldsNum($sql){
$this-mysql_query_rst($sql);
$this-fieldsNum = @mysql_num_fields($this-result);
}
//取得查詢結(jié)果數(shù)
function getRowsNum($sql){
$this-mysql_query_rst($sql);
if(mysql_errno() == 0){
return @mysql_num_rows($this-result);
}else{
return '';
}
}
//取得記錄數(shù)組(單條記錄)
function getRowsRst($sql,$type=MYSQL_BOTH){
$this-mysql_query_rst($sql);
if(empty($this-result)) return '';
if(mysql_error() == 0){
$this-rowsRst = mysql_fetch_array($this-result,$type);
return $this-rowsRst;
}else{
return '';
}
}
//取得記錄數(shù)組(多條記錄)
function getRowsArray($sql,$type=MYSQL_BOTH){
!empty($this-rowsArray) ? $this-rowsArray=array() : '';
$this-mysql_query_rst($sql);
if(mysql_errno() == 0){
while($row = mysql_fetch_array($this-result,$type)) {
$this-rowsArray[] = $row;
}
return $this-rowsArray;
}else{
return '';
}
}
//更新、刪除、添加記錄數(shù)
function uidRst($sql){
if($this-conn == ''){
$this-init_conn();
}
@mysql_query($sql);
$this-rowsNum = @mysql_affected_rows();
if(mysql_errno() == 0){
return $this-rowsNum;
}else{
return '';
}
}
//返回最近插入的一條數(shù)據(jù)庫(kù)的id值
function returnRstId($sql){
if($this-conn == ''){
$this-init_conn();
}
@mysql_query($sql);
if(mysql_errno() == 0){
return mysql_insert_id();
}else{
return '';
}
}
//獲取對(duì)應(yīng)的字段值
function getFields($sql,$fields){
$this-mysql_query_rst($sql);
if(mysql_errno() == 0){
if(mysql_num_rows($this-result) 0){
$tmpfld = @mysql_fetch_row($this-result);
$this-fields = $tmpfld[$fields];
}
return $this-fields;
}else{
return '';
}
}
//錯(cuò)誤信息
function msg_error(){
if(mysql_errno() != 0) {
$this-msg = mysql_error();
}
return $this-msg;
}
//釋放結(jié)果集
function close_rst(){
mysql_free_result($this-result);
$this-msg = '';
$this-fieldsNum = 0;
$this-rowsNum = 0;
$this-filesArray = '';
$this-rowsArray = '';
}
//關(guān)閉數(shù)據(jù)庫(kù)
function close_conn(){
$this-close_rst();
mysql_close($this-conn);
$this-conn = '';
}
//取得數(shù)據(jù)庫(kù)版本
function db_version() {
return mysql_get_server_info();
}
}
本身這就是一個(gè)自定義函數(shù),數(shù)據(jù)需要插入的話需要自己構(gòu)造sql語(yǔ)句然后通過(guò)mysql_query將函數(shù)返回的值寫(xiě)入數(shù)據(jù)庫(kù)。
想直接讓數(shù)據(jù)庫(kù)調(diào)用PHP的自定義函數(shù)是不現(xiàn)實(shí)的!
本文名稱:php封裝數(shù)據(jù)庫(kù)方法,php封裝協(xié)議
標(biāo)題來(lái)源:http://jinyejixie.com/article22/hopocc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、云服務(wù)器、外貿(mào)網(wǎng)站建設(shè)、虛擬主機(jī)、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)