亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

Yaf框架封裝的MySQL數據庫操作示例

2024-05-05 00:07:13
字體:
來源:轉載
供稿:網友

本文實例講述了Yaf框架封裝的MySQL數據庫操作。分享給大家供大家參考,具體如下:

Yaf封裝DB簡單操作

介紹

因為Yaf是一個純天然的MVC闊架,本人還在貝銳的時候就和主管一起用Yaf框架去重構了向日葵的網站端,到后面,Yaf也逐漸應用到了其他項目上,但是Yaf是沒有帶DB類庫的,所以本人也共享下最近封裝的代碼!

代碼

使用PDO封裝MySQL操作

class Db_Mysql{  private $_options = array();  private $db;  private $statement;  private $_fetchMode = 2;  /**   * 構造函數   *   * @param string $host   * @param string $username   * @param string $password   * @param string $dbname   * @param string $charset   */  private function __construct($host, $username, $password, $dbname, $charset)  {    //初始化數據連接    try {      $dns = 'mysql:dbname=' . $dbname . ';host=' . $host;      $this->db = new PDO($dns, $username, $password, array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_AUTOCOMMIT => 1));      $this->db->query('SET NAMES ' . $charset);    } catch (PDOException $e) {      echo header("Content-type: text/html; charset=utf-8");      echo '<pre />';      echo '<b>Connection failed:</b>' . $e->getMessage();      die;    }  }  /**   * 調用初始化MYSQL連接   *   * @param string $config   * @return Aomp_Db_Mysql   */  static public function getInstance($config = '')  {    $host = $config->host;    $username = $config->username;    $password = $config->password;    $dbname = $config->dbname;    $charset = $config->charset;    $db = new self($host, $username, $password, $dbname, $charset);    return $db;  }  /**   * 獲取多條數據   *   * @param string $sql   * @param array $bind   * @param string $fetchMode   * @return multitype:   */  public function fetchAll($sql, $bind = array(), $fetchMode = null)  {    if($fetchMode === NULL){      $fetchMode = $this->_fetchMode;    }    $stmt = $this->query($sql, $bind);    $res = $stmt->fetchAll($fetchMode);    return $res;  }  /**   * 獲取單條數據   *   * @param string $sql   * @param array $bind   * @param string $fetchMode   * @return mixed   */  public function fetchRow($sql, array $bind = array(), $fetchMode = null)  {    if ($fetchMode === null) {      $fetchMode = $this->_fetchMode;    }    $stmt = $this->query($sql, $bind);    $result = $stmt->fetch($fetchMode);    return $result;  }  /**   * 獲取統計或者ID   *   * @param string $sql   * @param array $bind   * @return string   */  public function fetchOne($sql, array $bind = array())  {    $stmt = $this->query($sql, $bind);    $res = $stmt->fetchColumn(0);    return $res;  }  /**   * 增加   *   * @param string $table   * @param array $bind   * @return number   */  public function insert($table, array $bind)  {    $cols = array();    $vals = array();    foreach ($bind as $k => $v) {      $cols[] = '`' . $k . '`';      $vals[] = ':' . $k;      unset($bind[$k]);      $bind[':' . $k] = $v;    }    $sql = 'INSERT INTO '      . $table      . ' (' . implode(',', $cols) . ') '      . 'VALUES (' . implode(',', $vals) . ')';    $stmt = $this->query($sql, $bind);    $res = $stmt->rowCount();    return $res;  }  /**   * 刪除   *   * @param string $table   * @param string $where   * @return boolean   */  public function delete($table, $where = '')  {    $where = $this->_whereExpr($where);    $sql = 'DELETE FROM '      . $table      . ($where ? ' WHERE ' .$where : '');    $stmt = $this->query($sql);    $res = $stmt->rowCount();    return $res;  }  /**   * 修改   *   * @param string $table   * @param array $bind   * @param string $where   * @return boolean   */  public function update($table, array $bind, $where = '')  {    $set = array();    foreach ($bind as $k => $v) {      $bind[':' . $k] = $v;      $v = ':' . $k;      $set[] = $k . ' = ' . $v;      unset($bind[$k]);    }    $where = $this->_whereExpr($where);    $sql = 'UPDATE '      . $table      . ' SET ' . implode(',', $set)      . (($where) ? ' WHERE ' . $where : '');    $stmt = $this->query($sql, $bind);    $res = $stmt->rowCount();    return $res;  }  /**   * 獲取新增ID   *   * @param string $tableName   * @param string $primaryKey   * @return string   */  public function lastInsertId()  {    return (string) $this->db->lastInsertId();  }  public function query($sql, $bind = array())  {    if(!is_array($bind)){      $bind = array($bind);    }    $stmt = $this->prepare($sql);    $stmt->execute($bind);    $stmt->setFetchMode($this->_fetchMode);    return $stmt;  }  public function prepare($sql = '')  {    if(empty($sql)){      return false;    }    $this->statement = $this->db->prepare($sql);    return $this->statement;  }  public function execute($param = '')  {    if(is_array($param)){      try {        return $this->statement->execute($param);      } catch (Exception $e) {        return $e->getMessage();      }    }else {      try {        return $this->statement->execute();      } catch (Exception $e) {        return $e->getMessage();      }    }  }  /**   *   * @param string $where   * @return null|string   */  protected function _whereExpr($where)  {    if(empty($where)){      return $where;    }    if(!is_array($where)){      $where = array($where);    }    $where = implode(' AND ', $where);    return $where;  }  /**   * 關閉數據庫操作   */  public function close()  {    $this->_db = null;  }}

配置

db.type = 'mysql'db.host = '127.0.0.1'db.username = 'root'db.password = '123456'db.dbname = 'test'db.charset = 'UTF8'

調用方法

class TestController extends Yaf_Controller_Abstract{  public function indexAction()  {    $config = Yaf_Application::app()->getConfig()->db;    $db = Db_Mysql::getInstance($config);    $row = $db->fetchOne('select count(*) from `user`');    print_r($row);die;  }}

結果

Yaf框架,封裝,MySQL,數據庫

 

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


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色婷婷av一区二区三区在线观看| 亚洲成人av片在线观看| 欧美人成在线视频| 亚洲色图15p| 亚洲国产另类 国产精品国产免费| 国产精品精品久久久久久| 亚洲精品国产精品乱码不99按摩| 成人免费视频xnxx.com| 国产成人久久久| 91国产精品91| 国产成人精品久久二区二区| 日韩av免费在线| 欧美视频在线观看免费网址| 97在线视频免费看| 午夜精品一区二区三区在线播放| 国产精品69精品一区二区三区| 成人字幕网zmw| 欧美日韩性生活视频| 国产成人精品在线视频| 国产精品欧美一区二区| 国产精品久久久久久久久久免费| 国产网站欧美日韩免费精品在线观看| 亚洲色图第一页| 欧美一乱一性一交一视频| 国产成人啪精品视频免费网| 高清日韩电视剧大全免费播放在线观看| 57pao成人永久免费视频| 亚洲女人被黑人巨大进入al| 日韩成人av在线播放| 亚洲日韩欧美视频| 国产色视频一区| www.亚洲免费视频| 2019中文字幕在线| 欧美多人乱p欧美4p久久| 欧美日韩国产999| 亚洲国产日韩欧美在线动漫| yw.139尤物在线精品视频| 亚洲美女黄色片| 亚洲久久久久久久久久| 揄拍成人国产精品视频| 国模精品系列视频| 欧美风情在线观看| 国产精品视频久久久| 亚洲色图色老头| 日韩中文在线视频| 欧美国产日产韩国视频| 伊人久久久久久久久久| 国产黑人绿帽在线第一区| 亚洲aⅴ日韩av电影在线观看| 国产手机视频精品| 日韩av在线不卡| 国产亚洲精品日韩| 国产精品日韩欧美综合| 国产精品mp4| 欧洲中文字幕国产精品| 97在线看免费观看视频在线观看| 久久影院在线观看| 亚洲福利在线观看| 欧美理论片在线观看| 亚洲老司机av| 欧美午夜xxx| 国产精品福利在线观看网址| 欧美床上激情在线观看| 亚洲欧美国产制服动漫| 国产人妖伪娘一区91| 激情成人在线视频| 国产日韩精品视频| 91国自产精品中文字幕亚洲| 欧美日韩色婷婷| 91精品视频免费观看| 2019av中文字幕| 欧美在线视频观看免费网站| 日韩在线免费高清视频| 国产91精品最新在线播放| 欧美日韩激情网| 国产精品久久视频| 久久久久免费精品国产| 国产精品视频yy9099| 5566日本婷婷色中文字幕97| 亚洲福利视频免费观看| 亚洲网在线观看| 亚洲欧美一区二区三区四区| 成人av电影天堂| 奇门遁甲1982国语版免费观看高清| 亚洲日韩欧美视频| 成人午夜激情免费视频| 成人444kkkk在线观看| 欧美小视频在线观看| 另类色图亚洲色图| 国产免费久久av| 欧美日韩亚洲激情| 成人自拍性视频| 亚洲综合在线播放| 亚洲成色777777在线观看影院| 欧美一区二区大胆人体摄影专业网站| 国产精品露脸av在线| 97精品国产97久久久久久春色| 精品久久久视频| 色综合导航网站| 中文字幕久热精品在线视频| 欧美丰满少妇xxxxx做受| 亚洲一区二区三区香蕉| 欧美人与性动交| 国产999精品视频| 亚洲一区二区三区乱码aⅴ蜜桃女| 欧美日韩一区二区在线| 亚洲日本中文字幕免费在线不卡| 俺去了亚洲欧美日韩| 精品视频一区在线视频| 精品欧美激情精品一区| 国产精品久久久久影院日本| 欧美激情第三页| 国语自产精品视频在免费| 粉嫩av一区二区三区免费野| 51ⅴ精品国产91久久久久久| 欧美日韩精品在线播放| 91亚洲精品在线| 久久精彩免费视频| 欧美激情小视频| 中文一区二区视频| 欧美亚洲国产另类| 91精品国产乱码久久久久久蜜臀| 欧美乱人伦中文字幕在线| 久久久精品影院| 91香蕉嫩草神马影院在线观看| 91精品国产综合久久久久久蜜臀| 国产日韩在线播放| 国产小视频91| 国产成人a亚洲精品| 成人国产在线激情| 国内精品久久久久久中文字幕| 欧美日韩成人在线播放| 国产精品av免费在线观看| 亚洲人av在线影院| 神马久久桃色视频| 日韩av观看网址| 奇米四色中文综合久久| 国产成人精品视频在线| 欧美午夜宅男影院在线观看| 欧美性猛交xxxx富婆弯腰| 欧美巨乳美女视频| 亚洲精品久久久久中文字幕二区| 亚洲国产精久久久久久久| 亚洲一区第一页| 欧美在线视频免费观看| 国产欧美日韩精品在线观看| 亚洲国产精品99久久| 久久久久久久久91| 欧美色播在线播放| 成人午夜激情免费视频| 精品国产美女在线| 日韩电影大全免费观看2023年上| 国产日本欧美在线观看| 亚洲qvod图片区电影| 日韩欧美亚洲一二三区| 欧美激情三级免费| 91国自产精品中文字幕亚洲| 亚洲国产97在线精品一区| 亚洲一区二区三区在线视频| 裸体女人亚洲精品一区| 日韩国产欧美精品一区二区三区| 亚洲天堂av在线播放| 日韩精品欧美国产精品忘忧草| 日韩精品视频中文在线观看|