您好,登錄后才能下訂單哦!
本篇內容主要講解“PHP怎么在單例模式下實現mysql類”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“PHP怎么在單例模式下實現mysql類”吧!
本文實例講述了PHP基于單例模式實現的mysql類。分享給大家供大家參考,具體如下:
<?php defined('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,false public 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,false public 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怎么在單例模式下實現mysql類”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。