PDO

MySQLI是针对MySQL数据库扩展的,是专门访问MySQL数据库的

PDO是一个数据库访问的一个扩展类,通过一个类访问多个数据库,就是一个数据访问抽象层,把类结合在一块了

可以访问别的数据库,是数据访问的抽象层

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body> <?php
//PDO
//1.访问不同的数据库
//2.自带事务功能.通过回滚操作可以把操作内容恢复
//3.防止SQL注入 //PDO怎么用
/*//1.造对象
$dsn = "mysql:dbname=mydb;host=localhost";"驱动名:数据库名称;服务器地址"
$pdo = new PDO($dsn,"root","123"); //2.写SQL语句
$sql = "update nation set name='兽族' where code='n013'"; //3.执行SQL语句
//$r = $pdo->query($sql);执行查询之后返回了另外一个对象,需要通过另外一个对象去找
$r = $pdo->exec($sql);执行的是增删改*/ //事务功能 要么全执行成功,要么全执行失败
//造对象
$dsn = "mysql:dbname=1016;host=localhost";
$pdo = new PDO($dsn,"root","数据库密码"); //设置异常模式,如果出现错误,抛一个异常出来
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);/*设置属性(名称,值) 注意不要加双引号*/ //写SQL语句
$sql1 = "insert into nation values('n007','朝鲜族')";
$sql2 = "insert into nation values('n008','彝族')"; //启动事务,执行两条SQL语句,最终提交给事务,然后事务判断有没有问题,要是有问题就抛出问题
try//试着执行
{
//启动事务
$pdo->beginTransaction(); $pdo->exec($sql1);
$pdo->exec($sql2); //提交事务
$pdo->commit();
}
catch/*抓住*/(PDOException $e)//PDO抛出的一个类型
{
//$e->getMessage();显示错误信息
//回滚
$pdo->rollBack();
} /*final//最终执行的内容,出不出错都执行,一般写关闭代码(PHP不常见)
{ }*/ ?> </body>
</html>

1107test.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<?php //造对象
$dsn = "mysql:dbname=1016;host=localhost";
$pdo = new PDO($dsn,"root","数据库密码"); //写SQL语句,预处理语句
$sql = "select * from nation"; //准备执行
$st = $pdo->prepare($sql); //执行
$st->execute(); //读数据 fetch 一行或fetch all 全部
var_dump($st->fetchAll(PDO::FETCH_ASSOC)); ?>
</body>
</html>

1107chaxun.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body> <?php //造对象
$dsn = "mysql:dbname=1016;host=localhost";
$pdo = new PDO($dsn,"root","数据库密码"); //写SQL语句,预处理语句,使用name占位(名称占位) 前面要加冒号
$sql = "insert into nation values(:code,:name)"; //准备执行
$st = $pdo->prepare($sql); //绑定参数
/*$st->bindParam(":code",$code,PDO::PARAM_STR);
$st->bindParam(":name",$name,PDO::PARAM_STR); $code="n011";
$name="土家族";*/
//用关联数组
$attr = array("code"=>"n012","name"=>"布依族"); //执行
$st->execute($attr); //总结:name占位,用的关联数组;?占位,用的索引数组 ?>
</body>
</html>

1107namezhanwei.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<?php //造对象
$dsn = "mysql:dbname=1016;host=localhost";
$pdo = new PDO($dsn,"root","数据库密码"); //写SQL语句,预处理语句 用问号占位置
$sql = "insert into nation values(?,?)"; //准备SQL语句,返回statement对象 用变量接收返回的statement对象
$st = $pdo->prepare($sql); //绑定参数 bind绑 Param参数 用问号站位的从1开始索引
/* 简化前
$st->bindParam(1,$code);
$st->bindParam(2,$name);
//可以在后面赋值也可以在前面
$code="n022";
$name="矮人族";*/
// 简化后 array数组
$attr = array("n010","蒙古族"); //提交执行,不用给SQL语句了,已经传过去了
var_dump($st->execute($attr)); //execute 成功返回true 失败返回false
//预处理语句里面用?占位的,给数组的时候要给索引数组,顺序要对应起来 ?>
</body>
</html>

1107sqlzhuru.php

PDO(20161107)的更多相关文章

  1. 我了个大擦-PDO(二)

    hi 昨天又213了,虽然有室友3点多才睡觉的客观影响,但是昨晚不想学东西是本质原因.今天搞起.打算3.4天之内,学完PDO和AJAX这两个,还望大家没事儿来骂骂我,免的我又偷懒. 1.PDO 二.P ...

  2. 会话控制之session和cookie(20161107)

    注:除了登录页面,每个页面,包括处理页面也要加,为了提高安全性 session尽量不用,因为很占内存 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML ...

  3. PHP 常用函数总结(二)

    4.PHP处理数据库的常用函数. 汇总表 PHP 5 MySQLi 函数 函数 描述 mysqli_affected_rows() 返回前一个 Mysql 操作的受影响行数. mysqli_autoc ...

  4. PDO操作mysql数据库(一)

    PHP连接mysql数据库: <?php$server = "localhost";$user = "root";$pwd = "123456& ...

  5. 11.7 (下午)开课二个月零三天 (PDO)

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

  6. PHP数据库抽象层--PDO(PHP Data Object) [一]

    1.简介:(PDO数据库访问抽象层,统一各种 数据库的访问接口 ) PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口.实现 PDO 接口的每个数据库驱动可以公开具体数据库 ...

  7. PHP中的PDO操作学习(三)预处理类及绑定数据

    要说 PDO 中最强大的功能,除了为不同的数据库提供了统一的接口之外,更重要的就是它的预处理能力,也就是 PDOStatement 所提供的功能.因为它的存在,才让我们可以安心地去使用而不用操心 SQ ...

  8. PHP中的PDO对象操作学习(一)初始化PDO及原始SQL语句操作

    PDO 已经是 PHP 中操作数据库事实上的标准.包括现在的框架和各种类库,都是以 PDO 作为数据库的连接方式.基本上只有我们自己在写简单的测试代码或者小的功能时会使用 mysqli 来操作数据库. ...

  9. 搭建LNAMP环境(四)- 源码安装PHP7

    上一篇:搭建LNAMP环境(三)- 源码安装Apache2.4 一.安装PHP7 1.yum安装编译php需要的包 yum -y install libxml2 libxml2-devel curl- ...

随机推荐

  1. 《JAVASCRIPT高级程序设计》选择框脚本和富文本编辑

    一.选择框脚本 选择框也是表单的一个字段,是通过<select>和<option>元素来创建的,需要使用javascript来控制.选择框拥有以下的属性和方法: 以下介绍一些选 ...

  2. 如何一步一步用DDD设计一个电商网站(十三)—— 领域事件扩展

    阅读目录 前言 回顾 本地的一致性 领域事件发布出现异常 订阅者处理出现异常 结语 一.前言 上篇中我们初步运用了领域事件,其中还有一些问题我们没有解决,所以实现是不健壮的,下面先来回顾一下. 二.回 ...

  3. Struts1文件上传、单文件、多文件上传【Struts1】

     将struts1文件上传的操作汇总了一下,包括单文件上传和多文件上传,内容如下,留作备忘: Struts2实现文件上传的文章(http://blog.csdn.net/itwit/article/d ...

  4. Import Statements 导入语句

    Syntax of an Import Statement 导入语句的语法 An import statement allows clients to tell the engine which mo ...

  5. Android仿微信朋友圈,全文收起功能,附源码

    在众多的社交类软件中,朋友圈是必不可少的,可以与好友.同学等分享自己的日常和有意思的事情,在开发社交类App时,朋友圈发表的内容你不可能让他全部显示,全部显示的话用户体验度会非常不好,这时就要用到全文 ...

  6. uml系列(六)——行为图:活动&状态

    说完uml的静态图了,说一下uml的动态的表示吧. uml的行为图,uml的行为图主要用来设计程序的行为.还是老规矩,先来张图: 行为图包含活动图和状态图两种. 先来说下活动图:活动图是由活动的节点和 ...

  7. mybatis随笔三之SqlSession

    在上一篇文章我们已经得到了DefaultSqlSession,接下来我们对sqlSession.getMapper(DemoMapper.class)这种语句进行分析 @Override public ...

  8. 一个普通底层.NET程序员关于职场瓶颈期的思考,辗转自我提升/跳槽/转行之间

    徒有工龄,没技术没学历没平台没家底,工作几年,无车无房无存款还前景不明. 时常有身边的亲友问怎么学开发怎么转互联网,说起IT行业都说工资高,动辄月薪上万动辄年薪几十万. 再看看自己,我可能是假的程序员 ...

  9. git链接GitHub命令及基本操作

    Git是一款不错的代码管理工具,下面引用百科的一段话:  Git是用于Linux内核开发的版本控制工具.与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服 ...

  10. [翻译]现代java开发指南 第二部分

    现代java开发指南 第二部分 第二部分:部署.监控 & 管理,性能分析和基准测试 第一部分,第二部分 =================== 欢迎来到现代 Java 开发指南第二部分.在第一 ...