本文实例讲述了PHP基于单例模式实现的数据库操作基类。分享给大家供大家参考,具体如下:
配置文件:
<?php$db = array( "host"=>"localhost", "user"=>"root", "password"=>"", "database"=>"test",)?>
php 数据库基类:
<?phpclass 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; } /** * 查询数据库 */ 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操作数据库相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基于pdo操作数据库技巧总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。