Welcome 微信登录

首页 / 网页编程 / PHP / PHP基于单例模式实现的mysql类

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