PHP基于單例模式實現(xiàn)的數(shù)據(jù)庫操作基類
本文實例講述了PHP基于單例模式實現(xiàn)的數(shù)據(jù)庫操作基類。分享給大家供大家參考,具體如下:
配置文件:
<?php
$db = array(
'host'=>'localhost',
'user'=>'root',
'password'=>'',
'database'=>'test',
)
?>
php 數(shù)據(jù)庫基類:
<?php
class db {
public $conn;
public static $sql;
public static $instance=null;
private function __construct(){
require_once('db.config.php');
$this->conn = mysql_connect($db['host'],$db['user'],$db['password']);
if(!mysql_select_db($db['database'],$this->conn)){
echo "失敗";
};
mysql_query('set names utf8',$this->conn);
}
public static function getInstance(){
if(is_null(self::$instance)){
self::$instance = new db;
}
return self::$instance;
}
/**
* 查詢數(shù)據(jù)庫
*/
public function select($table,$condition=array(),$field = array()){
$where='';
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."='".$v."' and ";
}
$where='where '.$where .'1=1';
}
$fieldstr = '';
if(!empty($field)){
foreach($field as $k=>$v){
$fieldstr.= $v.',';
}
$fieldstr = rtrim($fieldstr,',');
}else{
$fieldstr = '*';
}
self::$sql = "select {$fieldstr} from {$table} {$where}";
$result=mysql_query(self::$sql,$this->conn);
$resuleRow = array();
$i = 0;
while($row=mysql_fetch_assoc($result)){
foreach($row as $k=>$v){
$resuleRow[$i][$k] = $v;
}
$i++;
}
return $resuleRow;
}
/**
* 添加一條記錄
*/
public function insert($table,$data){
$values = '';
$datas = '';
foreach($data as $k=>$v){
$values.=$k.',';
$datas.="'$v'".',';
}
$values = rtrim($values,',');
$datas = rtrim($datas,',');
self::$sql = "INSERT INTO {$table} ({$values}) VALUES ({$datas})";
if(mysql_query(self::$sql)){
return mysql_insert_id();
}else{
return false;
};
}
/**
* 修改一條記錄
*/
public function update($table,$data,$condition=array()){
$where='';
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."='".$v."' and ";
}
$where='where '.$where .'1=1';
}
$updatastr = '';
if(!empty($data)){
foreach($data as $k=>$v){
$updatastr.= $k."='".$v."',";
}
$updatastr = 'set '.rtrim($updatastr,',');
}
self::$sql = "update {$table} {$updatastr} {$where}";
return mysql_query(self::$sql);
}
/**
* 刪除記錄
*/
public function delete($table,$condition){
$where='';
if(!empty($condition)){
foreach($condition as $k=>$v){
$where.=$k."='".$v."' and ";
}
$where='where '.$where .'1=1';
}
self::$sql = "delete from {$table} {$where}";
return mysql_query(self::$sql);
}
public static function getLastSql(){
echo self::$sql;
}
}
$db = db::getInstance();
//$list = $db->select('demo',array('name'=>'tom','password'=>'ds'),array('name','password'));
//echo $db->insert('demo',array('name'=>'腳本之家','password'=>'123'));
//echo $db->update('demo',array("name"=>'xxx',"password"=>'123'),array('id'=>1));
echo $db->delete('demo',array('id'=>'2'));
db::getLastSql();
echo "<pre>";
?>
更多關于PHP操作數(shù)據(jù)庫相關內容感興趣的讀者可查看本站專題:《php+mysql數(shù)據(jù)庫操作入門教程》、《PHP基于pdo操作數(shù)據(jù)庫技巧總結》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
Ubuntu中支持PHP5與PHP7雙版本的簡單實現(xiàn)
這篇文章主要給大家介紹了關于Ubuntu中支持PHP5與PHP7雙版本的簡單實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,這個方法也非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧2018-08-08
php select,radio和checkbox默認選擇的實現(xiàn)方法
radio和checkbox默認選擇的實現(xiàn)方法,大家參考下原理就知道了,不論asp,asp.net,jsp都是這個原理。2010-05-05
PHP面向對象程序設計(OOP)之方法重寫(override)操作示例
這篇文章主要介紹了PHP面向對象程序設計(OOP)之方法重寫(override)操作,簡單描述了php面向對象程序設計中方法重寫的原理,并結合實例形式分析了php方法重寫相關實現(xiàn)技巧與注意事項,需要的朋友可以參考下2018-12-12
使用PHP實現(xiàn)實時數(shù)據(jù)可視化功能的示例詳解
實時數(shù)據(jù)可視化功能,是指在Web應用程序開發(fā)中,將服務器發(fā)送的實時數(shù)據(jù),本文將介紹如何使用PHP和前端框架實現(xiàn)實時數(shù)據(jù)可視化功能,需要的可以參考一下2023-07-07
php查詢mysql數(shù)據(jù)庫并將結果保存到數(shù)組的方法
這篇文章主要介紹了php查詢mysql數(shù)據(jù)庫并將結果保存到數(shù)組的方法,實例分析了php使用mysql_fetch_assoc查詢數(shù)據(jù)庫的技巧,需要的朋友可以參考下2015-03-03

