文档章节

PDO+Access[密码] PDO+Mysql PHP PDO数据库驱动 常用操作 高性能 切换库

letwang
 letwang
发布于 2013/12/31 16:34
字数 275
阅读 678
收藏 2
<?php
class DB extends PDO {
	public function __construct($host, $username, $password, $database, $port = '3306', $charset = 'UTF8') {
		$driverOptions = array (
				PDO::ATTR_PERSISTENT => true,
				PDO::ATTR_CASE => PDO::CASE_LOWER,
				PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
				PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION 
		);
		if ($host) {
			$dsn = 'mysql:host=' . $host . ';dbname=' . $database . ';charset=' . $charset . ';port=' . $port . '';
		} else {
			$dsn = 'odbc:driver={microsoft access driver (*.mdb)};dbq=' . realpath ( $database ) . ';PWD=' . $password;
		}
		try {
			return parent::__construct ( $dsn, $username, $password, $driverOptions );
		} catch ( PDOException $e ) {
			echo $e->getMessage ();
		}
	}
	public function fetchAll($query, $parameters = array(), $type = PDO::FETCH_ASSOC) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		
		$rows = $rs->fetchAll ( $type );
		$rs->closeCursor ();
		
		unset ( $rs );
		return $rows;
	}
	public function fetchRow($query, $parameters = array(), $type = PDO::FETCH_ASSOC) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		
		$row = $rs->fetch ( $type );
		$rs->closeCursor ();
		
		unset ( $rs );
		return $row;
	}
	public function fetchValue($query, $parameters = array()) {
		return $this->fetchRowValue ( $query, $parameters, 0 );
	}
	public function fetchRowValue($query, $parameters = array(), $column = 0) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		
		$row = $rs->fetchColumn ( $column );
		$rs->closeCursor ();
		
		unset ( $rs );
		return $row;
	}
	public function update($query, $parameters) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		return $rs->rowCount ();
	}
	public function insert($query, $parameters = array()) {
		$rs = $this->prepareAndExecute ( $query, $parameters );
		return $this->lastInsertId ();
	}
	public function prepareAndExecute($query, $parameters = array()) {
		$rs = $this->prepare ( $query );
		$rs->execute ( $parameters );
		return $rs;
	}
}

$Mysql = new DB ( 'localhost', 'root', '123456', 'wordpress' );
$Access = new DB ( false, false, '1234567890', 'content.mdb' );

var_dump ( $Mysql->getAttribute ( PDO::ATTR_DRIVER_NAME ) );
echo '<hr />';//py by http://my.oschina.net/cart/
var_dump ( $Access->getAttribute ( PDO::ATTR_DRIVER_NAME ) );




© 著作权归作者所有

共有 人打赏支持
letwang
粉丝 171
博文 54
码字总数 81490
作品 1
南京
技术主管
私信 提问
加载中

评论(1)

初学小生
初学小生
不错支持
PHP连接Mysql常用API(mysql,mysqli,pdo)的区别

什么是API? 一 个应用程序接口(Application Programming Interface的缩写),定义了类,方法,函数,变量等等一切 你的应用程序中为了完成特定任务而需要调用的内容。在PHP应用程序需要和数...

Junn
2014/03/03
0
1
PHPDroid 更新,PHP 开发 Android 应用

PHPDroid 更新了,集成最新PHP7+Swoole+BusyBox+QRencode 开发 Android 应用。 下载地址: phpdroid_20160703.apk(5.8M) phpdroid_20160703.7z(4.7M) apk里包含PHP-7.0.8和高性能网络编程扩展...

eechen
2016/07/04
7.4K
53
LAMP架构(PHP的安装解析)

PHP官网www.php.net 当前主流版本为5.6/7.1 一,下载php包: wget http://cn2.php.net/distributions/php-.tar.gz 二,解压php包: tar zxf php-.tar.gz 进入php文件中 cd php- 三,开始编译...

小新锐
2017/12/18
0
0
ThinkPHP5.0.0 RC1版本发布——为API开发而设计

ThinkPHP V5.0——为API开发而设计的高性能框架 经过一段时间的测试和完善,官方正式发布第一个RC版本,该版本功能趋于稳定。 ThinkPHP5.0版本是一个颠覆和重构版本,基于PHP5.4设计(支持P...

流年
2016/01/30
2.5K
21
php连接mysql数据库的几种方式(mysql、mysqli、pdo)

php连接mysql数据库的几种方式(mysql、mysqli、pdo) www.111cn.net 编辑:flyfox 来源:转载 php与mysql的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,...

DanEcho
2016/11/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

EOS官方钱包keosd

EOS官方钱包的名称是keosd,它负责管理你的私钥,并且帮你进行交易的签名。 不过不幸的是,keosd钱包对普通用户并不友好,它是一个命令行程序,目前还没有像以太坊的mist那样的图形化界面,而...

汇智网教程
今天
24
0
ArrayList的实现原理以及实现线程安全

一、ArrayList概述 ArrayList是基于数组实现的,是一个动态的数字,可以自动扩容。 ArrayList不是线程安全的,效率比较高,只能用于单线程的环境中,在多线程环境中可以使用Collections.syn...

一看就喷亏的小猿
今天
28
0
Netty 备录 (一)

入职新公司不久,修修补补1个月的bug,来了点实战性的技术---基于netty即时通信 还好之前对socket有所使用及了解,入手netty应该不是很难吧,好吧,的确有点难,刚看这玩意的时候,可能都不知道哪里...

_大侠__
昨天
34
0
Django简单介绍和用户访问流程

Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。 Django是一个开放源代码的Web应用框架,由Python写成。 Django遵守BSD版权,初...

枫叶云
昨天
44
0
Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略(一):自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试...

程序猿DD
昨天
22
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部