婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Yaf框架封裝的MySQL數據庫操作示例

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

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

本文實例講述了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;
  }
}

結果

更多關于php框架相關內容感興趣的讀者可查看本站專題:《php優秀開發框架總結》、《codeigniter入門教程》、《ThinkPHP入門教程》、《Zend FrameWork框架入門教程》、《php面向對象程序設計入門教程》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

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

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

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

巨人網絡通訊聲明:本文標題《Yaf框架封裝的MySQL數據庫操作示例》,本文關鍵詞  Yaf,框架,封,裝的,MySQL,數據庫,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Yaf框架封裝的MySQL數據庫操作示例》相關的同類信息!
  • 本頁收集關于Yaf框架封裝的MySQL數據庫操作示例的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    91精品国产综合久久精品麻豆| 欧美日韩国产另类一区| 成人av资源在线观看| 日韩视频中午一区| 视频一区二区国产| 制服丝袜亚洲色图| 青青草国产成人99久久| 精品久久久久av影院| 国产高清不卡一区二区| 中文字幕在线播放不卡一区| 色偷偷一区二区三区| 亚洲综合清纯丝袜自拍| 制服.丝袜.亚洲.中文.综合| 国产综合一区二区| 综合婷婷亚洲小说| 91久久精品一区二区| 日韩福利电影在线| 久久美女艺术照精彩视频福利播放| 精品一区二区三区影院在线午夜| 欧美激情一区二区三区不卡| 91麻豆文化传媒在线观看| 日韩专区在线视频| 中文字幕不卡在线| 欧美夫妻性生活| 粉嫩一区二区三区在线看| 亚洲免费高清视频在线| 精品欧美一区二区久久| 99久久精品国产麻豆演员表| 日韩精品一卡二卡三卡四卡无卡| 久久亚洲影视婷婷| 欧美亚洲日本国产| 极品少妇xxxx精品少妇| 亚洲一区二区三区四区在线 | av电影在线不卡| 婷婷开心激情综合| 中文字幕一区免费在线观看| 欧美一区二区黄色| 日本电影欧美片| 成人开心网精品视频| 奇米777欧美一区二区| 自拍偷拍欧美激情| 日本一区二区三区电影| 欧美一区二区免费视频| 色婷婷激情一区二区三区| 激情都市一区二区| 亚洲电影一级黄| 国产精品全国免费观看高清 | 国产精品欧美一区喷水| 欧美精品久久99久久在免费线| 国产91综合一区在线观看| 日本最新不卡在线| 性欧美大战久久久久久久久| 亚洲少妇最新在线视频| 日本一区二区三级电影在线观看| 日韩欧美一级在线播放| 制服丝袜亚洲播放| 欧美精品在线观看播放| 欧美午夜片在线观看| 在线日韩一区二区| 欧美这里有精品| 在线观看不卡视频| 欧美综合欧美视频| 91福利精品第一导航| 色综合天天综合网天天看片| 国产麻豆视频一区| 丝袜亚洲另类欧美| 亚洲国产精品久久久久婷婷884| 成人欧美一区二区三区1314| 国产精品久久久久久一区二区三区| 国产亚洲女人久久久久毛片| 国产精品天天摸av网| 国产精品欧美久久久久一区二区| 中文字幕一区不卡| 一区二区三区丝袜| 午夜av一区二区三区| 蜜桃av一区二区| 国产一区二区精品在线观看| 国产一区二区毛片| 不卡欧美aaaaa| 在线观看91视频| 欧美一区二区播放| 久久久久88色偷偷免费| 中文字幕一区二区三区蜜月| 亚洲一区二区三区美女| 日韩精品1区2区3区| 精品在线免费视频| www.亚洲国产| 欧美日韩色一区| 日韩久久免费av| 国产精品妹子av| 午夜精品成人在线| 国产乱子伦视频一区二区三区| 成人h精品动漫一区二区三区| 欧日韩精品视频| www国产精品av| 亚洲免费视频中文字幕| 天天av天天翘天天综合网色鬼国产 | 欧美视频你懂的| 久久蜜桃av一区二区天堂| 亚洲欧美日韩一区二区| 久久超级碰视频| 欧美综合欧美视频| 欧美tickling挠脚心丨vk| 亚洲欧美激情小说另类| 理论片日本一区| 色综合夜色一区| 国产校园另类小说区| 亚洲国产精品嫩草影院| 成人免费视频国产在线观看| 欧美日韩dvd在线观看| 国产日韩欧美不卡在线| 免费国产亚洲视频| 在线观看亚洲一区| 中文字幕一区不卡| 国产99精品国产| 精品国产免费人成电影在线观看四季 | 久久天天做天天爱综合色| 亚洲免费大片在线观看| 国产.欧美.日韩| 久久久综合网站| 久久精品国产澳门| 欧美人与性动xxxx| 一区二区三区在线高清| 成人午夜av电影| 国产婷婷一区二区| 玖玖九九国产精品| 91麻豆精品国产91久久久久久久久 | 97久久精品人人澡人人爽| 精品成人免费观看| 蜜臀久久久99精品久久久久久| 欧美中文字幕一区| 亚洲综合久久av| 欧美在线视频你懂得| 一区二区三区色| 97国产精品videossex| 国产精品国产自产拍高清av| 国产馆精品极品| 亚洲国产成人午夜在线一区| 国产福利一区在线观看| 欧美国产欧美综合| 成人免费视频一区二区| 国产精品美女久久久久久久久久久| 国产成人自拍在线| 国产精品久久久久久久久搜平片 | 亚洲一区二区三区美女| 欧美色爱综合网| 亚洲va中文字幕| 69久久夜色精品国产69蝌蚪网| 天堂va蜜桃一区二区三区| 91精品欧美福利在线观看| 麻豆精品视频在线观看视频| 久久网站最新地址| 成av人片一区二区| 亚洲国产综合视频在线观看| 在线不卡免费av| 国产一区二区三区免费在线观看| 中文字幕不卡在线播放| 在线视频国产一区| 美女视频免费一区| 国产亚洲一区字幕| 日本高清不卡在线观看| 六月丁香综合在线视频| 国产欧美日韩在线观看| 日韩一区二区三区av| 精品在线你懂的| 自拍偷拍欧美精品| 日韩午夜小视频| 99国产精品国产精品毛片| 亚洲午夜av在线| 久久久综合精品| 91精品办公室少妇高潮对白| 久久成人精品无人区| 国产精品久久久久9999吃药| 欧美日韩精品一区二区| 国产成人亚洲综合a∨猫咪| 亚洲国产精品久久久男人的天堂| 欧美刺激脚交jootjob| 色先锋久久av资源部| 国产在线视频精品一区| 一区二区三区国产精品| 精品第一国产综合精品aⅴ| 欧洲一区二区三区在线| 国产在线不卡视频| 天堂久久一区二区三区| 亚洲色图视频网| 久久久久久影视| 激情欧美日韩一区二区| 国产一区二区精品久久99| 亚洲精品乱码久久久久久黑人| 欧美成人午夜电影| 欧美亚洲国产bt| 91麻豆免费视频| 成人午夜av在线| 国模少妇一区二区三区| 秋霞影院一区二区| 亚洲第一搞黄网站| 亚洲一级二级三级| 亚洲精品视频自拍| 亚洲欧美成aⅴ人在线观看| 精品三级av在线|