欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php數(shù)據(jù)用什么封裝 php封裝數(shù)據(jù)庫(kù)操作

PHP中對(duì)數(shù)據(jù)庫(kù)操作的封裝,有什么好的例子嗎

類文件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 數(shù)據(jù)庫(kù)封裝 哪個(gè)框架好

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è)采納吧謝謝((?(//?Д/?/)?))

PHP 繼承、封裝、多態(tài)

-子類只能繼承父類的非私有屬性

-子類繼承父類后,相當(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)

h5響應(yīng)式網(wǎng)站建設(shè)