PHP基于单例模式实现的数据库操作基类
本文实例讲述了PHP基于单例模式实现的数据库操作基类。分享给大家供大家参考,具体如下:
配置文件:
<?php $db=array( 'host'=>'localhost', 'user'=>'root', 'password'=>'', 'database'=>'test', ) ?>
php数据库基类:
<?php
classdb{
public$conn;
publicstatic$sql;
publicstatic$instance=null;
privatefunction__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('setnamesutf8',$this->conn);
}
publicstaticfunctiongetInstance(){
if(is_null(self::$instance)){
self::$instance=newdb;
}
returnself::$instance;
}
/**
*查询数据库
*/
publicfunctionselect($table,$condition=array(),$field=array()){
$where='';
if(!empty($condition)){
foreach($conditionas$k=>$v){
$where.=$k."='".$v."'and";
}
$where='where'.$where.'1=1';
}
$fieldstr='';
if(!empty($field)){
foreach($fieldas$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($rowas$k=>$v){
$resuleRow[$i][$k]=$v;
}
$i++;
}
return$resuleRow;
}
/**
*添加一条记录
*/
publicfunctioninsert($table,$data){
$values='';
$datas='';
foreach($dataas$k=>$v){
$values.=$k.',';
$datas.="'$v'".',';
}
$values=rtrim($values,',');
$datas=rtrim($datas,',');
self::$sql="INSERTINTO{$table}({$values})VALUES({$datas})";
if(mysql_query(self::$sql)){
returnmysql_insert_id();
}else{
returnfalse;
};
}
/**
*修改一条记录
*/
publicfunctionupdate($table,$data,$condition=array()){
$where='';
if(!empty($condition)){
foreach($conditionas$k=>$v){
$where.=$k."='".$v."'and";
}
$where='where'.$where.'1=1';
}
$updatastr='';
if(!empty($data)){
foreach($dataas$k=>$v){
$updatastr.=$k."='".$v."',";
}
$updatastr='set'.rtrim($updatastr,',');
}
self::$sql="update{$table}{$updatastr}{$where}";
returnmysql_query(self::$sql);
}
/**
*删除记录
*/
publicfunctiondelete($table,$condition){
$where='';
if(!empty($condition)){
foreach($conditionas$k=>$v){
$where.=$k."='".$v."'and";
}
$where='where'.$where.'1=1';
}
self::$sql="deletefrom{$table}{$where}";
returnmysql_query(self::$sql);
}
publicstaticfunctiongetLastSql(){
echoself::$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操作数据库相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基于pdo操作数据库技巧总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。