類文件mysql.class.php:

我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、神木ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的神木網(wǎng)站制作公司
?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);
?
PHP隨便你用什么框架都不是問(wèn)題,重點(diǎn)是玩的熟悉了后,PHPER自己做出類似YII,CI的框架都不是問(wèn)題,而且現(xiàn)在成熟框架來(lái)說(shuō),也有很多缺點(diǎn)比如 ZEND FRAMEWORK,走的是MVC套路,但是實(shí)際上低成本的框架不一定是這個(gè)結(jié)構(gòu),而是后BS時(shí)代的近似于CS結(jié)構(gòu)的那種通信方式,代碼越少,開(kāi)發(fā)周期就會(huì)變短。YII的問(wèn)題是過(guò)度封裝,仔細(xì)閱讀代碼,就會(huì)發(fā)現(xiàn),這個(gè)過(guò)度封裝,導(dǎo)致代碼繁瑣CI的主要問(wèn)題是數(shù)據(jù)庫(kù)支持,以后隨著NOSQL類數(shù)據(jù)庫(kù)的大型其道,CI那種數(shù)據(jù)庫(kù)查詢的封裝方式,會(huì)導(dǎo)致很多功能無(wú)法通過(guò)其內(nèi)框架內(nèi)的查詢封裝解決,比如NOSQL中的立體數(shù)據(jù),動(dòng)態(tài)增減字段,把數(shù)據(jù)當(dāng)成隊(duì)列做PUSH和PULL的操作,都無(wú)法正常使用,犧牲了一些高級(jí)特性我一直都用自己書(shū)寫(xiě)的框架來(lái)構(gòu)建項(xiàng)目,隨著目前項(xiàng)目結(jié)構(gòu)和趨勢(shì)的變化,有一部分遷移到了NODE.JS,PHP不再是最嘉選擇,如果還有不明白的話,你也可以去后盾人平臺(tái)看看php基礎(chǔ)教學(xué)視頻看看,也是不錯(cuò)的選擇,希望能幫到你,給個(gè)采納吧謝謝((?(//?Д/?/)?))
-子類只能繼承父類的非私有屬性
-子類繼承父類后,相當(dāng)于將父類的屬性和方法copy到子類,可以直接使用$this調(diào)用該屬性;
-php只能單繼承,不支持一個(gè)類繼承多個(gè)類。但是一個(gè)類可以進(jìn)行多層繼承
類實(shí)現(xiàn)封裝是為了不讓外面的類隨意修改一個(gè)類的成員變量,所以在定義一個(gè)類的成員的時(shí)候,我們使用private關(guān)鍵字設(shè)置這個(gè)成員的訪問(wèn)權(quán)限只能被這個(gè)類的其他成員方法調(diào)用,而不能被其他類中的方法調(diào)用,即通過(guò)本類中提供的方法來(lái)訪問(wèn)本類中的私有屬性
-所以在該類中我們會(huì)提供一個(gè)訪問(wèn)私有屬性的方法
-然后我們一般會(huì)定義兩個(gè)方法來(lái)實(shí)現(xiàn)對(duì)一個(gè)變量的操作,即__get()和__set()方法
一個(gè)類被多個(gè)子類繼承,如果這個(gè)類的某個(gè)方法,在多個(gè)子類中,表現(xiàn)出不同的功能,我們稱這種行為為多態(tài)(同一個(gè)類的不同子類表現(xiàn)出不同的形態(tài))
-子類繼承父類-子類重寫(xiě)父類的方法-父類引用指向子類對(duì)象
分享文章:php數(shù)據(jù)用什么封裝 php封裝數(shù)據(jù)庫(kù)操作
文章源于:http://chinadenli.net/article28/dojdgcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、手機(jī)網(wǎng)站建設(shè)、微信小程序、App開(kāi)發(fā)、自適應(yīng)網(wǎng)站、營(yíng)銷型網(wǎng)站建設(shè)
聲明:本網(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)