PDO简介

PDO 是一个“数据库访问抽象层”,作用是统一各种数据库(MySQL、MSSQL、Oracle、DB2、PostgreSQL……)的访问接口,能轻松的在不同的数据库之间完成切换,使得数据库间的移植容易实现。

PDO 驱动

支持PDO 的驱动及相应的数据库列表

驱动名

对应访问的数据库

PDO_DBLIB

FreeTDS / Microsoft SQL Server / Sybase

PDO_FIREBIRD

Firebird / Interbase 6

PDO_MYSQL

MySQL

PDO_OCI

Oracle

PDO_ODBC

ODBC v3

PDO_PGSQL

PostgreSQL

PDO_SQLITE

SQLite

PDO安装

PDO 是 PHP 5.1 发行的,也就是说,在 5.1 之前的版本是不支持 PDO 的,PDO 也是未来 PHP 处理数据库的首选和趋势。

下面介绍 PDO 的安装:

1、Linux 环境

在 Linux 环境中下为启用对 MySQL 的 PDO 程序驱动支持,需要在安装 PHP (5.1以上版本)的源代码包时,向 configure 命令中添加:

--with-pdo-mysql=/usr/local/mysql // "/usr/local/mysql"为 MySQL 服务器的安装目录

--with-pdo-mysql=/usr/local/mysql // "/usr/local/mysql"为 MySQL 服务器的安装目录

2、Windows 环境

修改 php.ini 文件,找到如下,把前面的“;”(分号:代表注释)去掉即可!

;extension=php_pdo.dll // 所有 PDO 驱动共享的扩展,这个必须有

;extension=php_pdo_mysql.dll // 使用 MySQL 使用这行

;extension=php_pdo_mssql.dll // 使用 MSSQL 使用这行

;extension=php_pdo.dll // 所有 PDO 驱动共享的扩展,这个必须有

;extension=php_pdo_mysql.dll // 使用 MySQL 使用这行

;extension=php_pdo_mssql.dll // 使用 MSSQL 使用这行

保存 php.ini 文件,重启 Apache 服务器,查看 phpinfo() 函数,出现下图说明安装成功。

注意:Windows 环境中,有时可能配置不成功,出现不了上图的现象。这时,把 PHP 安装扩展中的 php_pdo_mysql.dll、php_pdo.dll……等文件拷贝到系统安装路径的 Windows 下。

创建 PDO 对象

PDO 的构造方法原型如下:

__construct(string dsn [,string db_user [,string db_pwd [,array driver_options]]])

__construct(string dsn [,string db_user [,string db_pwd [,array driver_options]]])参数说明:

1、dsn(data source name):数据源名称,定义用到的数据库和驱动;

a、连接 MySQL 数据库的DSN:mysql:host=localhost;dbname=test // 主机名为:localhost;数据库名称为:test

b、连接 Oracle 数据库的DSN:oci:dbname=//localhost:1521/test // 主机名为:localhost;端口:1521;数据库名称为:test

……更多的 DSN 请参考 PHP 手册

2、db_user:数据库用户名;

3、db_pwd:数据库密码;

4、driver_options:是一个数组,用来指定连接所需的所有额外选项

PDO 用来指定连接所需的所有额外选项

选项名

描述

PDO::ATTR_AUTOCOMMIT

确定PDO 是否关闭自动提交功能,设置FALSE 为关闭

PDO::ATTR_CASE

强制PDO 获取的表字段字符的大小写转换,或原样使用列信息

PDO::ATTR_ERRMODE

设置错误处理的模式

PDO::ATTR_PERSISTENT

确定连接是否为持久连接,默认为FALSE,不持久连接

PDO::ATTR_ORACLE_NULLS

将返回的空字符串转换为SQL 的NULL

PDO::ATTR_PREFETCH

设置应用程序提前获取的数据大小,以K 字节为单位

PDO::ATTR_TIMEOUT

设置超时之前的等待时间(秒为单位)

PDO::ATTR_SERVER_INFO

包含与数据库特有的服务器信息

PDO::ATTR_SERVER_VERSION

包含与数据库服务器版本号有关的信息

PDO::ATTR_CLIENT_VERSION

包含与数据库客户端版本号有关的信息

PDO::ATTR_CONNECTION_STATUS

设置超时之前的等待时间(秒为单位)

调用 PDO 构造方法(连接数据库)

PDO 对象的成员方法

PDO对象中的成员方法

方法名

描述

getAttribute()

获取一个“数据库连接对象”的属性

setAttribute()

为一个“数据库连接对象”设定属性

errorCode()

获取错误码

errorInfo()

获取错误信息

exec()

处理一条SQL 语句,并返回所影响的行数

query()

处理一条SQL 语句,并返回一个"PDOStatement" 对象

quote()

为某个SQL 中的字符串添加引号

lastInsertId()

获取插入到表中的最后一条数据的主键值

prepare()

负责准备执行的SQL 语句

getAvailableDrivers()

获取有效的PDO 驱动器名称

beginTransaction()

开始一个事务,标明回滚起始点

commit()

提交一个事务,并执行SQL

rollback()

回滚一个事务

使用 PDO 执行 SQL 语句

1、使用 PDO::exec() 方法

PDO::exec() 方法多用在 SQL 中的 INSERT、UPDATE、DELETE,返回的为受影响的行数

PDO::query() 方法用在 SQL 中的 SELECT 查询上。如果该方法执行成功,那么将返回一个 PDOStatement 对象,使用 rowCount() 方法可以返回影响的行数

PDO 对预处理语句的支持

摘自 Lee.的专栏

http://www.bkjia.com/PHPjc/478465.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/478465.htmlTechArticlePDO简介 PDO 是一个数据库访问抽象层,作用是统一各种数据库(MySQL、MSSQL、Oracle、DB2、PostgreSQL)的访问接口,能轻松的在不同的数据库之间...

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

php怎样使用pdo,PHP中使用PDO_PHP教程相关推荐

  1. 创建此对象的程序是quation_MathType出现此对象创建于Equation中的处理教程

    有那么一部份多朋友还不熟悉MathType出现此对象创建于Equation中怎么处理?下面小编就讲解MathType出现此对象创建于Equation中的处理教程,希望对你们有所帮助哦. MathTyp ...

  2. html用bmob做留言,bmob js-sdk 在vue中的使用教程

    BmobSDK的引入 将bmob js-sdk放在static目录,然后在index.html页面中已 script 标签的形式引入,就可以在vue中全局使用bmob js-sdk 在assets目录 ...

  3. W10的服务器正在运行,win10开机提示服务器正在运行中的解决教程

    今天小编给大家分享的是win10开机提示服务器正在运行中的解决教程.最近有win10的用户反映,在开机的时候莫名的就出现了个"服务器正在运行中"的气泡提示,出现此问题困扰的用户,请 ...

  4. python idle运行anaconda_在Python IDLE 下调用anaconda中的库教程

    大家都知道,Anaconda是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.下载了anaconda我们可以很方便的随时调用这里面的库. 原先我自己在Py ...

  5. ubuntu中flashcache使用教程

    原文:ubuntu中flashcache使用教程 当前存在多种性能价格不一的存储设备,以价格高性能好的存储设备来加速价格低性能较差的存储设备,是一种提升系统整体性能的方案.flashcache便可以做 ...

  6. Java中的JDBC教程

    Java中的JDBC教程 欢迎使用JDBC教程.Java DataBase Connectivity(JDBC)是企业应用程序中使用最广泛的API之一.这是因为大多数应用程序使用某种数据库连接.我最近 ...

  7. 在Vue项目中使用LayUI教程且解决laydate无效的问题

    在Vue项目中使用LayUI教程且解决laydate无效的问题 1,安装LayUI开发包 2,导入LayUI开发包 3,在挂载函数mounted中加载LayUI组件 4,解决加载LayUI日期组件出现 ...

  8. XCode中使用SVN 教程

    修改subversion.config方法: 可以直接在终端上输入:vi ~/.subversion/config来编辑. 也可以通过Finder搜索.subversion,点击下边的+号,进入高级搜 ...

  9. Hexo中Buttefly最新教程总览

    总览 原文地址:Hexo中Buttefly最新教程总览 | 偷掉月亮 (moonshuo.cn) 本人使用Hexo博客已经将近一年,并且使用的是Next主题,网址为moonshuo.cn,现在想要更换 ...

最新文章

  1. scrapy安装出错
  2. WCF-Discovery的协议基础:WS-Disvovery(客户端驱动探测服务)
  3. Zulip 2.0.1 发布,功能强大的群组聊天软件
  4. 按15分钟取数据_步行15分钟能获得什么?这组数据能告诉你……
  5. java 进程同步代码_java 实现进程间的同步(源代码)
  6. android6.0/7.0 dump CallStack使用
  7. CentOS上安装多版本Python问题
  8. 网络爬虫详细设计方案
  9. 学习Python的几个优质平台
  10. SQL Server 数据库之索引
  11. 全网最全 Chrome浏览器插件推荐大全 持续更新中
  12. weka下载安装以及源码运行
  13. 11种职场肢体语言,你懂吗
  14. Dynamics 365 配置IFD的向导界面下一步按钮禁用的解决办法
  15. ads1278_ADS1278
  16. 一文读懂背照式CMOS图像传感器
  17. 电脑内存条频率怎么查看
  18. 电子产品长时间不充电导致无法开机、故障、充不满电等问题(如kindle:电池+叹号)
  19. linux源码中,.org 0x2000,ENTRY(pg1)表示的是什么意思?org是什么意思,ENTRY是什么意思啊?
  20. 北京公共计算机考试准考证打印

热门文章

  1. CSS3-变换-过渡-动画
  2. Linux驱动(14)--字符类设备与驱动
  3. 懒人版黑苹果mbr安装_MBR和GPT的区别,选择适合自己的
  4. 第2关:子节点创建、列出、删除
  5. 3007基于二叉链表的二叉树叶子结点到根结点的路径的求解(附DFS在树里的应用分析,思路详解)
  6. 无法获得 VMCI 驱动程序的版本: 句柄无效。 驱动程序“vmci.sys”的版本不正确。请尝试重新安装 VMware Workstation。 开启模块 DevicePowerOn 的操作失败
  7. 关于request.getServletPath(),request.getContextPath()的总结
  8. java中的 ok_java okhttp包的类特点
  9. es6 获取对象的所有值_前端开发必备 - ES6 新特性之 Set和Map数据结构
  10. RabbitMQ核心概念和AMQP协议(二)