PDO:

一、含义: 数据访问抽象层

二、作用 :通过PDO能够访问其它的数据库

三、 用法:

1.造对象

①$dsn="mysql:dbname=zz;host=localhost";

② $pdo = new PDO($dsn,"root","123");

2.执行SQL语句

① $pdo -> exec(): 用来处理非结果集的,返回影响的行数

② $pdo -> query() :用来处理有结果集的语句

四、预处理

①$stmt = $pdo -> prepare(SQL语句) : 将SQL语句放到服务器上等待执行

②$stmt -> execute();  :执行准备好的SQL语句

③SQL语句中参数用?代替

Ⅰ.  insert into users(name, pass, age, sex, email) values(?, ?, ?, ?, ?)

Ⅱ.  $stmt -> bindParam(1, $name); -> 将变量绑定给参数

Ⅲ.  $name = "admin"; -> 给变量赋值

Ⅳ.  $stmt -> execute(); ->  执行

Ⅴ.  $stmt -> execute(array("meizi", '123456', 18, 'nv', 'aa@bb.com'));  -> 简单方法(推荐)

④SQL语句中参数用字符串代替

Ⅰ.  insert into users(name, pass, age, sex, email) values(:name, :pass, :age, :sex, :email)

Ⅱ.  $stmt -> bindParam("name", $name, PDO::PARAM_STR); -> 将变量绑定给参数

Ⅲ.  $name = "admin"; -> 给变量赋值

Ⅳ.  $stmt -> execute(); ->  执行

Ⅴ.  $stmt -> execute(array("name"=>"feng", "pass"=>"abc123#", "age"=>28, "sex"=>"nan", "email"=>"aaa@bbb.com"));  -> 简单方法(推荐)

<body> <?php

//1.造对象、执行sql语句

$dsn = "mysql:dbname=text_zuoye;host=localhost"; $pdo = new PDO($dsn,"root","123");

$sql = " update nation set name ='兽族' where code ='n004'"; $attr = $pdo->exec($sql);//可以执行增删改

//2.事物功能

$dsn = "mysql:dbname=text_zuoye;host=localhost"; $pdo = new PDO($dsn,"root","123");

//设置异常模式:作用是如果出现错误,不出现错误信息,抛个异常出来

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

//写sql语句

$sqla = "insert into nation values('n005','人族')"; $sqlb = "insert into nation values('n006','精灵族')";

//执行sql语句:试着执行两条语句,如发现异常,抓住,不交给php,人为处理

try {     $pdo->exec($sqla);     $pdo->exec($sqlb); }

catch(PDOException $e)//抓住异常之后,自己出一个信息,如果返回一个异常,catch抓住之后,异常保存在变量$e里面,通过$e调用一个方法:$e->getMessage()来获取错误信息,如果错误,可以echo"友好信息" {     $e->getMessage(); } /*final//无论try里面的信息是否出错,都要执行final里面的内容 { }*/

//如何启动事物

try {     $pdo->beginTransaction();

//启动事物(开始)

$pdo->exec($sqla);//中间所有代码都是事物

$pdo->exec($sqlb);

$pdo->commit();//提交事务,如果发现有错,抛异常(结束) }

catch(PDOException $e) {     $pdo->rollBack();//如果有错误,执行回滚,两条语句同时执行,如果$sqla执行成功,且加入数据库,但是$sqlb不成功的话,catch抓住,执行回滚操作,加上的$sqla删除,可以让程序更加安全     //$e->getMessage();//如果没有错误,执行此语句 } ?>

<?php //3.防止注入功能,分两次给数据例如:第一次给$sql='select *from nation where code = ''',第二次给'n001' $dsn = "masql:dbname=text_zuoye;host=localhost"; $pdo = new PDO($dsn,"root","2786802");

//?占住位置,学名是预处理语句 $sql = " insert into nation values(?,?)";

//准备sql语句,返回一个statement对象 $st = $pdo->prepare($sql);

//绑定参数方法一: $st->bindParam(1,$code);//1是索引,$code是一个变量名 $st->bindParam(2,$name);

//给变量赋值,在绑定参数上边或者下边赋值都行 $code="n007"; $name = "矮人族";

//提交执行,不用给sql语句,已经传过去了,布尔型,成功true,失败false $st->execute();

//绑定参数方法二: $attr = array("n007","矮人族"); $st->execute($attr);

//预处理语句里面用?占位的,给数组的时候要给索引数组,给的数据顺序要对应起来

//name占住位置,学名是预处理语句 $sql = " insert into nation values(:code,:name)";

//准备执行 $st = $pdo->exec($sql);

//绑定参数 方法一: $st->bindParam(":code",$code,PDO::PARAM_STR);//指定¥code必须为字符串 $st->bindParam(":name",$name,PDO::PARAM_STR);

$code = "n009"; $name = "狼族";

//执行 $st->execute();

//绑定参数 方法二: $attr = array("code"=>"noo9","name"=>"虫族");

//PDO查询:   $sql = "select * from nation "; $st = $pdo->prepare($sql); $st->execute(); var_dump($st->fetchAll());       $st->fetch();//返回一个关联加索引的数组 $st->fetchAll()//返回一个关联加索引的数组 ?> </body>

PDO知识的更多相关文章

  1. pdo知识总结

    PDO 用了这么久了这里抽时间总结下: pdo (php data object) 是php5 新出来的支持 mysql 操作的一个功能.用其可代替mysqli扩展.因为是php自带的.所以我觉得效率 ...

  2. 封装PDO函数

    funPDO.php <?php /** * @title: 封装PDO函数 * * @Features: * 1. 封装 SELECT ,INSERT,DELETE,UPDATE 操作 @do ...

  3. PHP基础知识之————PDO预处理语句

    转载处:http://www.cnblogs.com/xiaohuochai/p/6133353.html 定义 在生成网页时,许多PHP脚本通常都会执行除参数之外,其他部分完全相同的查询语句,针对这 ...

  4. PDO基础知识

    使用PDO之前首先开启PHP的PDO扩展,方法见百度. PDO连接数据库的方式有三种 1.通过参数的形式连接数据库 (推荐) //通过参数形式连接数据库 try{ $dsn = 'mysql:host ...

  5. PDO 基础知识

    PDO: 一.含义: 数据访问抽象层 二.作用 :通过PDO能够访问其它的数据库 三. 用法: 1.造对象 ①$dsn="mysql:dbname=zz(数据库名);host=localho ...

  6. PDO 小知识

    一.前言 PDO(PHP Data Object)提供了一个通用接口访问多种数据库,即抽象的数据模型支持连接多种数据库. PDO扩展为PHP定义了一个访问数据库的轻量.持久的接口.其本身并不能实现任何 ...

  7. PHP中PDO的配置与说明

    住[PDO是啥] PDO是PHP5新加入的一个重大功能,因为在PHP5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll.php_pgsql.dll ...

  8. PHP5中PDO的简单使用

    PHP5中PDO的简单使用 标签: php数据库mysql扩展extensionexception 2012-05-06 10:27 27753人阅读 评论(0) 收藏 举报  分类: PHP(6)  ...

  9. 使用PDO持久化连接

    无论是何种编程语言,几乎都要经常与各种数据库打交道.不过,众所周知的是,在程序与数据库之间建立连接是一件比较耗费资源的事情,因此编程技术领域的许多专家.前辈们就设想并提出了各种解决方案,以减少不必要的 ...

随机推荐

  1. 利用Bundle在activity之间传递对象

    (2010-12-04 09:45:54) 转载▼ 标签: it 分类: android开发 转自:http://chen592969029.javaeye.com/blog/772656 假如需要在 ...

  2. WireShark抓包过程

    wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息.使用wireshark的人必须了解网络协议,否则就看不懂wireshark了. 为了安全考虑 ...

  3. Kali Linux 2016.2发布提供虚拟机以及系统镜像下载

    Kali Linux 2016.2发布提供虚拟机以及系统镜像下载   Kali Linux 2016.2发布提供虚拟机以及系统镜像下载,本次Kali Linux 2016.2提供了五种桌面模式,分别为 ...

  4. 使用Javascript无限添加QQ好友原理解析

    做QQ营销的朋友都知道,QQ加好友是有诸多限制的,IP限制,次数限制,二维码限制,人数限制,使用软件自动加好友会遇到各种各样的问题,很多软件通过模拟人工添加QQ号码,在添加几个之后就会遇到腾讯规则限制 ...

  5. ZOJ 3157 Weapon

    题目传送门 题意:就是CF round# 329 B 的升级版,要求出相交点的个数 分析:逆序数用树状数组维护,求出非逆序数,然后所有情况(n * (n - 1)) / 2减之就是逆序数个数. #in ...

  6. 贪心 HDOJ 4726 Kia's Calculation

    题目传送门 /* 这题交给队友做,做了一个多小时,全排列,RE数组越界,赛后发现读题读错了,囧! 贪心:先确定最高位的数字,然后用贪心的方法,越高位数字越大 注意:1. Both A and B wi ...

  7. 基于Extjs的web表单设计器 第六节——界面框架设计

    基于Extjs的web表单设计器 基于Extjs的web表单设计器 第一节 基于Extjs的web表单设计器 第二节——表单控件设计 基于Extjs的web表单设计器 第三节——控件拖放 基于Extj ...

  8. Android SDK Manager无法更新,内容显示不全的解决办法

    最近在初学android开发,在更新SDK的时候遇到了麻烦. 发现Extras文件夹下为空,没有内容,包括sdk列表也不全面,更新也没有反应 解决方法: 1.在SDK Manager下Tools-&g ...

  9. BZOJ3640 : JC的小苹果

    设$f[i][j]$表示$hp$为$i$,在$j$点的概率,$d[i]$表示$i$的度数,$w[i]$表示经过$i$点要扣掉的血量. 对于$j$到$k$这条边,$f[i-w[k]][k]+=\frac ...

  10. BZOJ4032 : [HEOI2015]最短不公共子串

    第一问: 对B串建立SAM,暴力枚举A的每个子串,在SAM上走,若失配则可行. 第二问: 设g[i][j]表示B串的第i个字符之后最早出现的字符j的位置,暴力枚举A的每个子串,按照g贪心地走,若失配则 ...