PHP基于单例模式实现的mysql类
本文实例讲述了PHP基于单例模式实现的mysql类。分享给大家供大家参考,具体如下:
<?php defined('ACC')||exit('AccessDenied'); //封装mysql操作类,包括连接功能,及查询功能. classmysqlextendsabsdb{ protectedstatic$ins=null; protected$host;//主机名 protected$user;//用户名 protected$passwd;//密码 protected$db;//数据库名 protected$port;//端口 protected$conn=null; //在内部操作,获得一个对象 publicstaticfunctiongetIns(){ if(self::$ins===null){ self::$ins=newself(); } $conf=conf::getIns(); self::$ins->host=$conf->host; self::$ins->user=$conf->user; self::$ins->passwd=$conf->pwd; self::$ins->db=$conf->db; self::$ins->port=$conf->port; self::$ins->connect(); self::$ins->select_db(); self::$ins->setChar(); returnself::$ins; } //不让外部做new操作, protectedfunction__construct(){ } //连接数据库 publicfunctionconnect(){ $this->conn=@mysql_connect($this->host,$this->user,$this->passwd,$this->port); if(!$this->conn){ $error=newException('数据库连不上',9); throw$error; } } //发送sql查询 publicfunctionquery($sql){ $rs=mysql_query($sql,$this->conn); if(!$rs){ log::write($sql); } return$rs; } //封装一个getAll方法 //参数:$sql //返回:array,false publicfunctiongetAll($sql){ $rs=$this->query($sql); if(!$rs){ returnfalse; } $list=array(); while($row=mysql_fetch_assoc($rs)){ $list[]=$row; } return$list; } //封装一个getRow方法 //参数:$sql //返回:array,false publicfunctiongetRow($sql){ $rs=$this->query($sql); if(!$rs){ returnfalse; } returnmysql_fetch_assoc($rs); } //封装一个getOne方法, //参数:$sql //返回:int,str(单一的值) publicfunctiongetOne($sql){ $rs=$this->query($sql); if(!$rs){ returnfalse; } $tmp=mysql_fetch_row($rs); return$tmp[0]; } //封装一个afftect_rows()方法 //参数:无 //返回int受影响行数 publicfunctionaffected_rows(){ returnmysql_affected_rows($this->conn); } //返回最新生成的auto_increment列的值 publicfunctionlast_id(){ returnmysql_insert_id($this->conn); } //选库函数 publicfunctionselect_db(){ $sql='use'.$this->db; return$this->query($sql); } //设置字符集的函数 publicfunctionsetChar(){ $sql='setnamesutf8'; return$this->query($sql); } //自动生成insert语句,update语句并执行 publicfunctionautoExecute($data,$table,$act='insert',$where=''){ if($act=='insert'){ $sql='insertinto'.$table.'('; $sql.=implode(',',(array_keys($data))); $sql.=')values(\''; $sql.=implode("','",array_values($data)); $sql.="')"; }elseif($act=='update'){ if(!trim($where)){ returnfalse; } $sql='update'.$table.'set'; foreach($dataas$k=>$v){ $sql.=$k; $sql.='='; $sql.="'".$v."',"; } $sql=substr($sql,0,-1); $sql.='where'; $sql.=$where; }else{ returnfalse; } //return$sql; return$this->query($sql); } }
更多关于PHP数据库操作相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基于pdo操作数据库技巧总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。