PDO简介
php链接数据库 半年后需要更换mysql为集群模式或者有钱了升级oracl数据库,这时的改动相当大,成本高。如果再之前使用PDO,之后再遇见这样的问题就很轻松。
开启PDO:
打开php.ini文件,将需要打开的dll扩展件前面的“;”去掉。
;extension=php_pdo_firebird.dll
;extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
测试能否使用
打开php.info()查看到:
使用语法
$db->setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);
$rs = $db->query("SELECT * FROM foo");
$rs->setFetchMode(PDO::FETCH_ASSOC);
$result_arr = $rs->fetchAll();
print_r($result_arr);
setAttribute():
PDO::CASE_LOWER -- 强制列名是小写
PDO::CASE_NATURAL -- 列名按照原始的方式
PDO::CASE_UPPER -- 强制列名为大写
setFetchMode():
PDO::FETCH_ASSOC -- 关联数组形式
PDO::FETCH_NUM -- 数字索引数组形式
PDO::FETCH_BOTH -- 两者数组形式都有,这是缺省的
PDO::FETCH_OBJ -- 按照对象的形式,类似于以前的 mysql_fetch_object()
异常处理:
try{
$db = new PDO($dsn,$user,$passwd);
}catch(PDOException $e){
print $e->getMessage(); // 返回异常信息
print $e->getCode(); // 返回异常代码
print $e->getFile(); // 返回发生异常的文件名
print $e->getLine(); // 返回发生异常的代码行号
print $e->getTrace(); // backtrace() 数组
print $e->getTraceAsString(); // 已格成化成字符串的 getTrace() 信息
}
$count = $db->exec("insert into info_u set name,nickname ='hefe',job=1;");
print $db->errorCode();
print_r($db->errorinfo()); --------------------------------------------------
[message:protected] => SQLSTATE[HY000] [1045] Access denied for user 'coffee'@'localhost' (using password: YES)
[string:Exception:private] =>
[code:protected] => 1045
[file:protected] => /alidata/www/webpage/signup.php
[line:protected] => 11
[trace:Exception:private] => Array
(
[0] => Array
(
[file] => /alidata/www/webpage/signup.php
[line] => 11
[function] => __construct
[class] => PDO
[type] => ->
[args] => Array
(
[0] => mysql:host=localhost;dbname=fengchao
[1] => coffee
[2] => coffe
)
)
)
[previous:Exception:private] =>
[errorInfo] =>
42S22
Array
(
[0] => 42S22
[1] => 1054
[2] =>
Unknown column 'name' in 'field list'
)
在new新的链接时,异常处理用PDOException();在执行exection()时异常处理使用errorInfo()和errorCode();
errorCode()返回:
00000 //执行正常
1054 //Unknown column 'X' in 'field list' 字段X未出现在在字段中
1110 // 字段出现两次出现两次
1062 //Duplicate entry 'X' for key 'PRIMARY' 重复主键
......
PDO简介的更多相关文章
- 数据库PDO简介
php简介,php历史,php后端工程师职业前景,php技术方向,php后端工程师职业体系介绍. php是世界上使用最广泛的web开发语言,是超文本预处理器,是一种通用的开源脚本语言,语法吸收了c语言 ...
- php PDO简介和操作
PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库 所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) <?php //1.造PDO对象 $dsn = ...
- PDO连接mysql数据库
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...
- PDO连接数据库
PDO连接数据库 PDO简介和配置 php.ini extension=php_pdo.dll extension=php_pdo_myysql.dll PDO连接MYSQL new PDO(&quo ...
- 我懒蛋又回来了!-PDO
hi 好几天了吧,脚伤都有一周了的.玩乐的这么久才发觉,对于年轻人,或者更具体的,对我而言,受伤最难受的不是受伤瞬间的身痛,不是随之而来的心理负担,不是独自一人远在他乡的孤独无助之感:最伤的是斗志,是 ...
- PHP5中使用PDO连接数据库的方法
PDO(PHP Data Object) 是PHP 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,php_my ...
- php pdo操作
PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 p ...
- php 学习路线 赵兴壮2014年4月28 日 加油
第一阶段 第一讲,WEB基础 1.1 网站基本知识: 1.2 网络协议介绍: 1.3 B/S与C/S结构的区别: 1.4 WEB编程.网站开发技术介绍. 第二讲,网页设计 2 ...
- PHP全栈学习笔记12
php简介,php历史,php后端工程师职业前景,php技术方向,php后端工程师职业体系介绍. php是世界上使用最广泛的web开发语言,是超文本预处理器,是一种通用的开源脚本语言,语法吸收了c语言 ...
随机推荐
- oracle 命令创建用户 、授权、数据库导入、导出
最近在使用oracle,经常要导入导出数据,命令很简单,却经常忘记,所以记下来.. drop user yfplss cascade;--登录system用户删除已存在的用户名,该用户下的所有东西都被 ...
- 基于jQuery实现的水平和垂直居中的div窗口
在建立网页布局的时候,我们经常会面临一个问题,就是让一个div实现水平和垂直居中,虽然好几种方式实现,但是今天介绍时我最喜欢的方法,通过css和jQuery实现. 1.通过css实现水平居中: 复 ...
- div footer标签css实现位于页面底部固定
Web页面的“footer”部分随着飘上来,处在页面的半腰中间,给视觉效果带来极大的影响,让你的页面看上去很不好看,特别是现在宽屏越来越多,这种现象更是常见,本文将介绍两种解决方案,需要了解的朋友可以 ...
- C++中重载、重写(覆盖)和隐藏的区别实例分析
这篇文章主要介绍了C++中重载.重写(覆盖)和隐藏的区别,是C++面向对象程序设计非常重要的概念,需要的朋友可以参考下 本文实例讲述了C++中重载.重写(覆盖)和隐藏的区别,对于C++面向对象程序设计 ...
- Ubuntu密码忘记了怎么办(转载)
版本:Ubuntu 11.10 思路是进入root中,然后使用passwd修改自己的密码. 假设用户名:quietheart 经过网上查询,如果安装系统之后没有设root密码,那么,Ubuntu 11 ...
- 关于三星手机照相机调用适配问题Android
因为三星手机在照相的时候,会自动将自动转化为为横屏. 这里的话 就不讲具体怎么实现的,因为在网络上是有相关的代码. 主要的是在你拍完照返回的时候,先前的界面可能会重绘,所以会导致一些问题. 我暂时的办 ...
- Python进阶之map()、reduce()、filter()
map()函数 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",&q ...
- sqlite3编译与查询
1.sqlite3 http://www.sqlite.org/ 下载 wget http://www.sqlite.org/2014/sqlite-amalgamation-3080403.zip ...
- SpringMVC 中整合之JSON、XML
每次看到好的博客我就想好好的整理起来,便于后面自己复习,同时也共享给网络上的伙伴们! 博客地址: springMVC整合Jaxb2.xStream: http://www.cnblogs.com/h ...
- IOS深入学习(3)之Control Object
1 前言 今天我们来简单的学习一下IOS中用户点击屏幕后的事件处理,其中主要介绍一下Control Object,内容如下. 2 详述 Control是处于当用户用某种方式操作进行发送消息给另一个界面 ...