国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

php基于單例模式封裝mysql類完整實例

高洛峰
發(fā)布: 2016-12-21 17:04:29
原創(chuàng)
1215人瀏覽過

本文實例講述了php基于單例模式封裝mysql類。分享給大家供大家參考,具體如下:

類:

<?php
header("content-type:text/html;charset=utf-8");
//封裝一個類
/*
掌握滿足單例模式的必要條件
(1)私有的構(gòu)造方法-為了防止在類外使用new關鍵字實例化對象
(2)私有的成員屬性-為了防止在類外引入這個存放對象的屬性
(3)私有的克隆方法-為了防止在類外通過clone成生另一個對象
(4)公有的靜態(tài)方法-為了讓用戶進行實例化對象的操作
*/
class db{
  //三私一共
  //私有的靜態(tài)屬性
  private static $dbcon=false;
  //私有的構(gòu)造方法
  private function __construct(){
  $dbcon=@mysql_connect("localhost","root","root");
   mysql_select_db("small2",$dbcon) or die("mysql_connect error");
   mysql_query("set names utf8");
  }
  //私有的克隆方法
  private function __clone(){}
  //公用的靜態(tài)方法
  public static function getIntance(){
   if(self::$dbcon==false){
    self::$dbcon=new self;
   }
   return self::$dbcon;
  }
  //打印數(shù)據(jù)
  public function p($arr){
    echo "<pre class="brush:php;toolbar:false">";
    print_r($arr);
    echo "
登錄后復制
"; ??} ??public?function?v($arr){ ??echo?"
";
    var_dump($arr);
    echo "
登錄后復制
"; ??} ??//執(zhí)行語句 ??public?function?query($sql){ ??$query=mysql_query($sql); ???return?$query; ??} ??/** ??*?查詢某個字段 ??*?@param ??*?@return?string?or?int ??*/ ??public?function?getOne($sql){ ???$query=$this->query($sql); ????return?mysql_result($query,0); ??} ??//獲取一行記錄,return?array?一維數(shù)組 ??public?function?getRow($sql,$type="assoc"){ ???$query=$this->query($sql); ???if(!in_array($type,array("assoc",'array',"row"))){ ?????die("mysql_query?error"); ???} ???$funcname="mysql_fetch_".$type; ???return?$funcname($query); ??} ??//獲取一條記錄,前置條件通過資源獲取一條記錄 ??public?function?getFormSource($query,$type="assoc"){ ??if(!in_array($type,array("assoc","array","row"))) ??{ ????die("mysql_query?error"); ??} ??$funcname="mysql_fetch_".$type; ??return?$funcname($query); ??} ??//獲取多條數(shù)據(jù),二維數(shù)組 ??public?function?getAll($sql){ ???$query=$this->query($sql); ???$list=array(); ???while?($r=$this->getFormSource($query))?{ ????$list[]=$r; ???} ???return?$list; ??} ??//獲得最后一條記錄id ??public?function?getInsertid(){ ???return?mysql_insert_id(); ??} ???/** ???*?定義添加數(shù)據(jù)的方法 ???*?@param?string?$table?表名 ???*?@param?string?orarray?$data?[數(shù)據(jù)] ???*?@return?int?最新添加的id ???*/ ???public?function?insert($table,$data){ ???//遍歷數(shù)組,得到每一個字段和字段的值 ???$key_str=''; ???$v_str=''; ???foreach($data?as?$key=>$v){ ????if(empty($v)){ ?????die("error"); ???} ??????//$key的值是每一個字段s一個字段所對應的值 ??????$key_str.=$key.','; ??????$v_str.="'$v',"; ???} ???$key_str=trim($key_str,','); ???$v_str=trim($v_str,','); ???//判斷數(shù)據(jù)是否為空 ???$sql="insert?into?$table?($key_str)?values?($v_str)"; ???$this->query($sql); ?//返回上一次增加操做產(chǎn)生ID值 ???return?mysql_insert_id(); ?} ?/* ??*?刪除一條數(shù)據(jù)方法 ??*?@param1?$table,?$where=array('id'=>'1')?表名?條件 ??*?@return?受影響的行數(shù) ??*/ ??public?function?deleteOne($table,?$where){ ????if(is_array($where)){ ??????foreach?($where?as?$key?=>?$val)?{ ????????$condition?=?$key.'='.$val; ??????} ????}?else?{ ??????$condition?=?$where; ????} ????$sql?=?"delete?from?$table?where?$condition"; ????$this->query($sql); ????//返回受影響的行數(shù) ????return?mysql_affected_rows(); ??} ??/* ??*?刪除多條數(shù)據(jù)方法 ??*?@param1?$table,?$where?表名?條件 ??*?@return?受影響的行數(shù) ??*/ ??public?function?deleteAll($table,?$where){ ????if(is_array($where)){ ??????foreach?($where?as?$key?=>?$val)?{ ????????if(is_array($val)){ ??????????$condition?=?$key.'?in?('.implode(',',?$val)?.')'; ????????}?else?{ ??????????$condition?=?$key.?'='?.$val; ????????} ??????} ????}?else?{ ??????$condition?=?$where; ????} ????$sql?=?"delete?from?$table?where?$condition"; ????$this->query($sql); ????//返回受影響的行數(shù) ????return?mysql_affected_rows(); ??} ?/** ??*?[修改操作description] ??*?@param?[type]?$table?[表名] ??*?@param?[type]?$data?[數(shù)據(jù)] ??*?@param?[type]?$where?[條件] ??*?@return?[type] ??*/ ?public?function?update($table,$data,$where){ ???//遍歷數(shù)組,得到每一個字段和字段的值 ???$str=''; ??foreach($data?as?$key=>$v){ ???$str.="$key='$v',"; ??} ??$str=rtrim($str,','); ??//修改SQL語句 ??$sql="update?$table?set?$str?where?$where"; ??$this->query($sql); ??//返回受影響的行數(shù) ??return?mysql_affected_rows(); ?} } ?>

測試:

//mysql測試
//$db=db::getIntance();
//var_dump($db);
/*$sql="select * from acticle";
$list=$db->getAll($sql);
$db->p($list);*/
/*$sql="select * from acticle where acticle_id=95";
$list=$db->getRow($sql);
$db->p($list);
*/
/*$sql="select title from acticle";
$list=$db->getOne($sql);
$db->p($list);*/
//$list=$db->insert("users",$_POST);
//$del=$db->deleteOne("users","id=26");
//$del=$db->deleteAll("users","id in(23,24)");
//$up=$db->update("users",$_POST,"id=27");
//$id=$db->getInsertid();
//print_R($id);
登錄后復制

希望本文所述對大家PHP程序設計有所幫助。

更多php基于單例模式封裝mysql類完整實例相關文章請關注PHP中文網(wǎng)!

立即學習PHP免費學習筆記(深入)”;

PHP速學教程(入門到精通)
PHP速學教程(入門到精通)

PHP怎么學習?PHP怎么入門?PHP在哪學?PHP怎么學才快?不用擔心,這里為大家提供了PHP速學教程(入門到精通),有需要的小伙伴保存下載就能學習啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權(quán)歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請聯(lián)系admin@php.cn
最新問題
開源免費商場系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關注服務號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號