校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Yaf框架封裝的MySQL數(shù)據(jù)庫操作示例

Yaf框架封裝的MySQL數(shù)據(jù)庫操作示例

熱門標簽:安陽自動外呼系統(tǒng)價格是多少 十堰ai電話機器人效果怎么樣 浙江外呼電話系統(tǒng)軟件 地圖標注風向標 臨沂智能電銷機器人軟件 芒果電銷機器人 電梯外呼線路板維修視頻 銀川ai電話機器人 上海公司外呼系統(tǒng)線路

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

Yaf封裝DB簡單操作

介紹

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

代碼

使用PDO封裝MySQL操作

class Db_Mysql
{
  private $_options = array();
  private $db;
  private $statement;
  private $_fetchMode = 2;
  /**
   * 構(gòu)造函數(shù)
   *
   * @param string $host
   * @param string $username
   * @param string $password
   * @param string $dbname
   * @param string $charset
   */
  private function __construct($host, $username, $password, $dbname, $charset)
  {
    //初始化數(shù)據(jù)連接
    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;
    }
  }
  /**
   * 調(diào)用初始化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;
  }
  /**
   * 獲取多條數(shù)據(jù)
   *
   * @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;
  }
  /**
   * 獲取單條數(shù)據(jù)
   *
   * @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;
  }
  /**
   * 獲取統(tǒng)計或者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;
  }
  /**
   * 關閉數(shù)據(jù)庫操作
   */
  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'

調(diào)用方法

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;
  }
}

結(jié)果

更多關于php框架相關內(nèi)容感興趣的讀者可查看本站專題:《php優(yōu)秀開發(fā)框架總結(jié)》、《codeigniter入門教程》、《ThinkPHP入門教程》、《Zend FrameWork框架入門教程》、《php面向?qū)ο蟪绦蛟O計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》

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

您可能感興趣的文章:
  • Can''t connect to local MySQL through socket ''/tmp/mysql.sock''解決方法
  • Mysql常用函數(shù)大全(分類匯總講解)
  • 利用MySQL主從配置實現(xiàn)讀寫分離減輕數(shù)據(jù)庫壓力
  • mysql+spring+mybatis實現(xiàn)數(shù)據(jù)庫讀寫分離的代碼配置
  • 如何徹底刪除mysql服務(清理注冊表)詳解
  • MySQL壓縮版zip安裝問題的解決方法
  • Golang中如何對MySQL進行操作詳解
  • 將圖片儲存在MySQL數(shù)據(jù)庫中的幾種方法
  • MySQL存儲文本和圖片的方法
  • mysql實現(xiàn)sequence功能的代碼

標簽:寧夏 徐州 遵義 荊門 吐魯番 武威 常州 遂寧

巨人網(wǎng)絡通訊聲明:本文標題《Yaf框架封裝的MySQL數(shù)據(jù)庫操作示例》,本文關鍵詞  Yaf,框架,封,裝的,MySQL,數(shù)據(jù)庫,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Yaf框架封裝的MySQL數(shù)據(jù)庫操作示例》相關的同類信息!
  • 本頁收集關于Yaf框架封裝的MySQL數(shù)據(jù)庫操作示例的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    蜜桃视频第一区免费观看| 一区二区在线观看视频| 成人精品免费网站| 亚洲在线观看免费视频| 日韩欧美一区二区久久婷婷| 成人午夜av在线| 久草精品在线观看| 夜夜爽夜夜爽精品视频| 久久久噜噜噜久噜久久综合| 欧美亚洲国产一区在线观看网站 | 成人午夜碰碰视频| 午夜在线电影亚洲一区| 国产日韩一级二级三级| 欧美一区二区三区人| 色婷婷av一区| 91免费国产在线| bt欧美亚洲午夜电影天堂| 国产中文字幕精品| 久久成人精品无人区| 午夜精品一区二区三区三上悠亚| 中文字幕欧美区| 国产农村妇女精品| 2022国产精品视频| 欧美一区二区三区视频在线 | 国产精品一区二区视频| 国产视频一区二区在线| 国产成人8x视频一区二区| 樱桃视频在线观看一区| www国产精品av| 国产在线精品一区二区夜色 | 欧美色精品天天在线观看视频| 日本不卡在线视频| 亚洲va欧美va国产va天堂影院| ㊣最新国产の精品bt伙计久久| 久久久不卡网国产精品二区| 久久天天做天天爱综合色| 精品伦理精品一区| 久久久久久一级片| 国产精品成人免费| 国产精品美女www爽爽爽| 日韩精品资源二区在线| 99久久夜色精品国产网站| 激情小说欧美图片| 丰满岳乱妇一区二区三区| 不卡欧美aaaaa| 欧美精品久久久久久久多人混战| 这里是久久伊人| 精品三级av在线| 成人欧美一区二区三区小说| 亚洲成av人**亚洲成av**| 国产综合色产在线精品| 色综合天天综合在线视频| 欧美一级在线观看| 亚洲欧洲av色图| 奇米888四色在线精品| 成人免费高清在线| 日韩视频免费观看高清完整版 | 91精品国产综合久久福利 | 成人综合在线观看| 欧美日韩国产首页在线观看| 最新热久久免费视频| 国产综合色视频| 日韩一区二区三区四区| 亚洲日本在线观看| 成人黄色网址在线观看| 精品国产凹凸成av人导航| 日本欧美一区二区三区| 91久久久免费一区二区| 欧美激情在线一区二区| 韩国三级在线一区| 日韩一区二区电影网| 婷婷久久综合九色综合绿巨人| 99久久99久久久精品齐齐| 中文字幕国产一区二区| 国产不卡视频在线观看| 国产日韩v精品一区二区| 久久国产尿小便嘘嘘尿| 欧美精品在线观看一区二区| 午夜精品福利在线| 在线不卡免费av| 日韩成人免费看| 欧美成人欧美edvon| 久久精品久久综合| 久久亚洲综合av| 国产精品一区二区x88av| 国产精品视频在线看| 91猫先生在线| 日韩av一区二区在线影视| 欧美人牲a欧美精品| 亚洲6080在线| 久久午夜电影网| 99r精品视频| 人禽交欧美网站| 国产日本一区二区| 欧美午夜一区二区三区免费大片| 五月婷婷久久丁香| 久久久久久一级片| 在线视频观看一区| 蜜桃av噜噜一区| 亚洲精品大片www| 精品国产91亚洲一区二区三区婷婷| 国产成人午夜电影网| 亚洲一区在线电影| 久久久久久免费毛片精品| 91色在线porny| 精品一区二区久久久| 日韩一区在线免费观看| 日韩免费视频一区| 91国偷自产一区二区三区观看| 久久精工是国产品牌吗| 亚洲欧美一区二区三区极速播放| 91精品国产高清一区二区三区| av欧美精品.com| 久久99国产精品免费网站| 亚洲高清一区二区三区| 国产精品久线在线观看| 欧美成人三级在线| 欧美伦理电影网| 91丝袜美腿高跟国产极品老师 | 欧美精品免费视频| 99久久免费精品高清特色大片| 激情综合五月婷婷| 久久激五月天综合精品| 日日摸夜夜添夜夜添亚洲女人| 日韩理论电影院| 国产精品麻豆久久久| 中文字幕日韩av资源站| 久久久久久夜精品精品免费| 久久久国产精华| 国产女同互慰高潮91漫画| 国产亚洲精品7777| 欧美不卡视频一区| 日韩午夜小视频| 日韩久久免费av| 国产丝袜欧美中文另类| 欧美激情在线看| 中文字幕免费观看一区| 日韩一区在线播放| 一区二区在线观看免费视频播放| 亚洲精品久久久久久国产精华液| 亚洲午夜影视影院在线观看| 天天色天天操综合| 国内成人精品2018免费看| 国产电影精品久久禁18| 91年精品国产| 欧美一区二区三区四区高清| 久久精品视频免费观看| 亚洲人成在线观看一区二区| 亚洲国产视频一区| 久久精品国产色蜜蜜麻豆| 丰满岳乱妇一区二区三区| 91美女视频网站| 久久网站热最新地址| 一区二区三区在线观看欧美| 麻豆精品一区二区综合av| 岛国精品一区二区| 欧美三级电影网站| 日本一区二区视频在线| 亚洲va国产天堂va久久en| 国产69精品久久久久毛片| 色婷婷综合久久久| 久久久高清一区二区三区| 亚洲午夜在线电影| 白白色 亚洲乱淫| 日韩欧美一级精品久久| 亚洲一区av在线| 99久久夜色精品国产网站| 久久亚洲精品小早川怜子| 午夜视频在线观看一区| 成人性色生活片免费看爆迷你毛片| 91精品啪在线观看国产60岁| 亚洲精品欧美激情| 久久精品国产色蜜蜜麻豆| 欧美日韩国产综合一区二区| 欧美国产日本韩| 成人精品高清在线| 久久综合久久综合久久| 精品一区二区三区影院在线午夜| 欧美男人的天堂一二区| 亚洲一区二区三区视频在线播放 | 欧美成人vps| 久久精品噜噜噜成人av农村| 日韩丝袜情趣美女图片| 青青草国产精品亚洲专区无| 日韩欧美一级片| 久久成人免费日本黄色| 国产主播一区二区三区| 欧美成人精品高清在线播放 | 毛片一区二区三区| 欧美电视剧免费全集观看| 天堂精品中文字幕在线| 欧美视频一区二区三区四区| 美女高潮久久久| 欧美不卡一区二区三区| 日韩电影网1区2区| 久久婷婷国产综合精品青草 | 91亚洲大成网污www| 日韩一区在线看| 色哟哟亚洲精品| 日韩不卡在线观看日韩不卡视频|