国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

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

2024-05-04 23:51:15
字體:
來源:轉載
供稿:網友

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

類:

<?phpheader("content-type:text/html;charset=utf-8");//封裝一個類/*掌握滿足單例模式的必要條件(1)私有的構造方法-為了防止在類外使用new關鍵字實例化對象(2)私有的成員屬性-為了防止在類外引入這個存放對象的屬性(3)私有的克隆方法-為了防止在類外通過clone成生另一個對象(4)公有的靜態方法-為了讓用戶進行實例化對象的操作*/class db{  //三私一共  //私有的靜態屬性  private static $dbcon=false;  //私有的構造方法  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(){}  //公用的靜態方法  public static function getIntance(){   if(self::$dbcon==false){    self::$dbcon=new self;   }   return self::$dbcon;  }  //打印數據  public function p($arr){    echo "<pre>";    print_r($arr);    echo "</pre>";  }  public function v($arr){  echo "<pre>";    var_dump($arr);    echo "</pre>";  }  //執行語句  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 一維數組  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);  }  //獲取多條數據,二維數組  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();  }   /**   * 定義添加數據的方法   * @param string $table 表名   * @param string orarray $data [數據]   * @return int 最新添加的id   */   public function insert($table,$data){   //遍歷數組,得到每一個字段和字段的值   $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,',');   //判斷數據是否為空   $sql="insert into $table ($key_str) values ($v_str)";   $this->query($sql); //返回上一次增加操做產生ID值   return mysql_insert_id(); } /*  * 刪除一條數據方法  * @param1 $table, $where=array('id'=>'1') 表名 條件  * @return 受影響的行數  */  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);    //返回受影響的行數    return mysql_affected_rows();  }  /*  * 刪除多條數據方法  * @param1 $table, $where 表名 條件  * @return 受影響的行數  */  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);    //返回受影響的行數    return mysql_affected_rows();  } /**  * [修改操作description]  * @param [type] $table [表名]  * @param [type] $data [數據]  * @param [type] $where [條件]  * @return [type]  */ public function update($table,$data,$where){   //遍歷數組,得到每一個字段和字段的值   $str='';  foreach($data as $key=>$v){   $str.="$key='$v',";  }  $str=rtrim($str,',');  //修改SQL語句  $sql="update $table set $str where $where";  $this->query($sql);  //返回受影響的行數  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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 北碚区| 松溪县| 青冈县| 克什克腾旗| 黄冈市| 铁力市| 井研县| 边坝县| 嵩明县| 凤台县| 昭通市| 云林县| 卓资县| 招远市| 洱源县| 仁怀市| 彭泽县| 双峰县| 巴林左旗| 威海市| 临沭县| 虎林市| 且末县| 灌阳县| 修水县| 霍山县| 巴林右旗| 巴南区| 渭南市| 陵川县| 怀化市| 桑日县| 滦南县| 闸北区| 株洲县| 永寿县| 龙海市| 沁水县| 新化县| 五台县| 罗田县|