无为清净楼资源网 Design By www.qnjia.com
本文实例讲述了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 "htmlcode">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程序设计有所帮助。
无为清净楼资源网 Design By www.qnjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无为清净楼资源网 Design By www.qnjia.com
暂无评论...
更新日志
2024年09月25日
2024年09月25日
- 杨千嬅.2002-万紫千红演唱会2CD(2024环球红馆40复刻系列)【环球】【WAV+CUE】
- 郭采洁.2015-Begin.Again爱造飞鸡【华纳】【FLAC分轨】
- 许志安.2011-ON.AND.ON【东亚】【WAV+CUE】
- 潘秀琼.1994-木兰从军【名将】【WAV+CUE】
- 纯音入心系列纯音乐《古筝系列-当流行乐遇到古筝》1CD[MP3][1.9GB]
- 纯音入心系列纯音乐《精选古筝名曲100首》1CD[MP3][388.7MB]
- 纯音入心系列纯音乐《天籁古筝》1CD[MP3][331MB]
- 男女对唱典藏天碟《发烧对唱·那个季节里的歌DSD》10CD[WAV]
- 群星2010-歌林精选辑[歌林][WAV+CUE]
- TrioZimbalist-PianoTriosofWeinberg,Auerbach,Dvorak(2024)[24-44,1]wav
- 群星.1992-滚石第一流台湾歌·12王牌大车拼【滚石】【WAV+CUE】
- 林子祥.1984-创作歌集【华纳】【WAV+CUE】
- 周汤豪.2010-周汤豪【华纳】【FLAC分轨】
- Mozart-TheStringQuintets-AmadeusQuartet,CecilAronowitz(2017)[24-44,1][WAV+CUE]
- JamesWilliamsDennisIrwin-Focus(2024,Red)[24-48]FLAC