一、实例化一个PDO对象

//实例化一个PDO对象
//1,设置数据源相关参数
$dbms = 'mysql';
$host = '127.0.0.1';
$port = '3306';
$dbname = 'bbs';
$charset = 'utf8';
//设置数据源
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";
//设置用户名和密码
$user = 'root';
$pass = 'admin';
//实例化PDO类
$pdo = new PDO($dsn,$user,$pass);
var_dump($pdo);

二、FETCH的一个小例子

//实例化一个PDO对象
//1,设置数据源相关参数
$dbms = 'mysql';
$host = '127.0.0.1';
$port = '3306';
$dbname = 'bbs';
$charset = 'utf8';
//设置数据源
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";
//设置用户名和密码
$user = 'root';
$pass = 'admin';
//实例化PDO类
$pdo = new PDO($dsn,$user,$pass);

//$sql
$sql = "select * from user";

//执行一条语句
$result = $pdo->query($sql);
//$result是一个结果对象集 PDOStatement对象一般也叫作结果对象!
//var_dump($result);

//调用fetchALL方法输出
//$rows = $result->fetchALL();
echo '<pre />';
//var_dump($rows);

//fetch 每次从PDOStatement结果集中获取一条记录,同时把指针下移,该方法有一个参数,可以控制返回值的类型!

var_dump($result->fetch(PDO::FETCH_ASSOC));
//var_dump($result->fetch(PDO::FETCH_NUM));
var_dump($result->fetch(PDO::FETCH_BOTH));

三、PDO的预处理操作

//1,设置数据源相关参数
$dbms = 'mysql';
$host = '127.0.0.1';
$port = '3306';
$dbname = 'bbs';
$charset = 'utf8';
//设置数据源
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";
//设置用户名和密码
$user = 'root';
$pass = 'admin';
//实例化PDO类
$pdo = new PDO($dsn,$user,$pass);
//PDO中的预处理技术
//第一步,发送预处理语句
$sql = "insert into user values(null,:user,:pass,:default)";

//执行一条语句
$result = $pdo->prepare($sql);
//$result是一个结果对象集 PDOStatement对象一般也叫作结果对象!
var_dump($result);

//第二步绑定参数 先把每个参数保存到变量中
$user = '小HONG';
$pass = md5('123456');
$default = 'default.jpg';

//再绑定参数变量
//$result->bindParam(':user',$user);
//$result->bindParam(':pass',$pass);
//$result->bindParam(':default',$default);

//执行预处理语句
//$res = $result->execute();
//if($res){
// echo 'ok';
//}else{
// echo 'no';
//}

//数组绑定参数
$arr =array(
':user'=>$user,
':pass'=>$pass,
':default'=>$default
);
//执行预处理语句
$res = $result->execute($arr);
if($res){
echo 'ok';
}else{
echo 'no';
}

四、PDO的异常处理

//1,设置数据源相关参数
$dbms = 'mysql';
$host = '127.0.0.1';
$port = '3306';
$dbname = 'bbs';
$charset = 'utf8';
//设置数据源
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";
//设置用户名和密码
$user = 'root';
$pass = 'admin';
//实例化PDO类
$pdo = new PDO($dsn,$user,$pass);
//设置PDO异常处理方式
$pdo ->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//异常模式
//监控异常
try{
//准备sql语句
$sql = "select * from user";
$result = $pdo->query($sql);
}catch(PDOException $e){//捕获异常
echo '错误的代码是',$e->getcode(),'<br />';
echo '错误的信息是',$e->getmessage(),'<br />';
echo '错误的脚本是',$e->getfile(),'<br />';
echo '错误的行号是',$e->getline(),'<br />';
}

PDO的一些操作的更多相关文章

  1. 一个基于PDO的数据库操作类(新) 一个PDO事务实例

    <?php /* * 作者:胡睿 * 日期:2011/03/19 * 电邮:hooray0905@foxmail.com * * 20110319 * 常用数据库操作,如:增删改查,获取单条记录 ...

  2. PHP PDO 简单登陆操作

    用PHP做出一个简单的登陆操作,确实很简单,下面就让我给大家简单的介绍一下PDO做出一个登陆界面操作的过程,因为也是初学乍练,不足之处请大家包涵. 首先,首先还要建一个表,在MySQL中建表,核心代码 ...

  3. 关于安装PHP补装PDO与PDO_MYSQL操作

    我这里是通过PHP源码包来安装的 1.安装pdo cd到你的PHP源码包下的ext/pdo目录,然后执行如下操作: #/usr/local/php/bin/phpize   (/usr/local/p ...

  4. php pdo mysql数据库操作类

    <?php namespace iphp\core; use iphp\App; /** * 数据库操作基类 基于pdo * @author xuen * 支持链式操作,支持参数绑定 * 说明1 ...

  5. PHP 基于pdo的数据库操作类

    http://www.php.cn/php-weizijiaocheng-404645.html <?php class Pdodb{   protected $pdo;   protected ...

  6. PDO访问方式操作数据库

    mysqli是专门访问MySQL数据库的,不能访问其它数据库.PDO可以访问多种的数据库,它把操作类合并在一起,做成一个数据访问抽象层,这个抽象层就是PDO,根据类操作对应的数据库.mysqli是一个 ...

  7. php PDO简介和操作

    PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库  所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) <?php //1.造PDO对象 $dsn = ...

  8. PDO链式操作——针对关键字出现问题的解决方案

    例如: 1.执行一条SQL语句:查询user表中的所有数据,并通过name字段进行降序,通过age进行升序 2. 案例1:   正确的执行语句为:SELECT * FROM user ORDER BY ...

  9. SQL注入实验,PHP连接数据库,Mysql查看binlog,PreparedStatement,mysqli, PDO

    看到有人说了判断能否sql注入的方法: 简单的在参数后边加一个单引号,就可以快速判断是否可以进行SQL注入,这个百试百灵,如果有漏洞的话,一般会报错. 下面内容参考了这两篇文章 http://blog ...

随机推荐

  1. JS中对象排序

    详细代码如下: var s=[{name:"abc",value:10},{name:"dbc",value:5},{name:"acc", ...

  2. 淘宝弹性布局方案lib-flexible实践

    2个月前,写过一篇文章<从网易与淘宝的font-size思考前端设计稿与工作流>总结过一些移动web中有关手机适配的一些思路,当时也是因为工作的关系分析了下网易跟淘宝的移动页面,最后才有那 ...

  3. word2013删除下载的模板

    word2013删除下载的模板 删除步骤: 1)关闭相关的word文档. 2)按照以下的路径找到相应的位置:"%系统根目录%\Users\Administrator\AppData\Roam ...

  4. zeromq中两个dealer 通过一个router进行通信

    发现有童鞋不是很清楚ZMQ中的“请求-回复”模式中的ROUTER怎么用,所以简单介绍一下“请求-回复”模式的使用(最后付代码). 一.讲一讲 1.要使用zmq 通过一个router进行通信,你首先需要 ...

  5. css 图片内容在不同分辨率下居中显示(演示的图片宽度是1920px,当图片宽度大于显示屏的宽度时)

    1.img 图片内容在不同分辨率下居中显示(如果隐藏多余,在img外面套一个div  设定overflow: hidden.div的大小就是img显示区域的大小) <!DOCTYPE html& ...

  6. HTML当中特殊字符的表示

    (回车换行) <br> (空格符)   &(AND符号) & <(左尖括号.小于号) < >(右尖括号.大于号) > °(度) ° •(间隔符) • ...

  7. FastJson和AsyncHttpCLient

    Android的展示数据,除了上章所讲的本地存储外,大部分数据都来自于网络.首先介绍一下Android APP开发常见的网络操作方式.从网络层面上有底层的tcp/ip,也就是我们常见的socket套接 ...

  8. 动态生成linearLayout

    LinearLayout linearLayout=new LinearLayout(this); linearLayout.setOrientation(LinearLayout.VERTICAL) ...

  9. Angular2对待一个URL的处理流程

    直到一年前我还不会想到我会写一本书出来,直到两三年前我还不会想到会把自己的业余时间放在写作(技术博客)上.当初在机缘巧合之下,我只是想把自己工作中遇到的问题总结起来,发布在博客中以供日后查阅.不想竟然 ...

  10. Java学习记录-Jdk包简单介绍

    java.applet Java语言编写的一些小应用程序 java.awt AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交 ...