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程序设计有所帮助。