PHP基於單例模式實現的mysql類

來源:互聯網
上載者:User
本文執行個體講述了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,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資料庫操作相關內容感興趣的讀者可查看本站專題:《php+mysql資料庫操作入門教程》、《PHP基於pdo操作資料庫技巧總結》及《php常見資料庫操作技巧匯總》

希望本文所述對大家PHP程式設計有所協助。

以上就介紹了PHP基於單例模式實現的mysql類,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.