PDO 基础知识


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‘, ‘[email protected]‘));  -> 简单方法(推荐)        

④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"=>"[email protected]"));  -> 简单方法(推荐)  

<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>
时间: 2024-12-17 09:00:30

PDO 基础知识的相关文章

《PHP基础知识总结》系列文章归档

<PHP基础知识总结>系列文章归档 总结PHP基础知识,对初学者还是高手都值得参考巩固. 1PHP检查库或函数是否可用的方法 2关于PHP5 Session生命周期介绍 3PHP页面和Mysql数据库的转UTF8编码问题总结 4WAMP5的配置问题 5揭秘PHP深受Web开发者喜爱的原因 6php获取客户端电脑屏幕参数的方法 7PHP中浮点数计算比较及取整不准确的解决方法 8对于PHP中命名空间概念的入门理解 9php5.4以下版本json不支持不转义内容中文的解决方法 10PHP相关面试中最

《PHP基础知识总结》系列-新鸟老鸟通吃

<PHP基础知识总结>文件夹收藏文章列表 总结PHP基础知识,对初学者还是高手都值得参考巩固. 1PHP检查库或函数是否可用的方法 2关于PHP5 Session生命周期介绍 3PHP页面和Mysql数据库的转UTF8编码问题总结 4WAMP5的配置问题 5揭秘PHP深受Web开发者喜爱的原因 6php获取客户端电脑屏幕参数的方法 7PHP中浮点数计算比较及取整不准确的解决方法 8对于PHP中命名空间概念的入门理解 9php5.4以下版本json不支持不转义内容中文的解决方法 10PHP相关面

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

BroadcastReceive基础知识总结

BroadcastReceive基础知识总结 1.BroadcastReceive简介 BroadcastReceive也就是"广播接收者"的意思,顾名思义,就是用来接收来自系统和应用中的广播 在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能,当网络状态改变时,系统会产生一条广播,接收到这条广播,就能及时的做出提示和保存数据等操作,当电池的电量改变的时候,系统会产生一条广播,接收到这条广播就能在电量低的时候告知用户

基础知识--:before伪元素和:after伪元素

http://book.51cto.com/art/201108/285688.htm 3.7  替换指定位置 大家都知道before和after是前.后的意思.但是奇怪的是,CSS中的:before伪元素和:after伪元素是为源文档中不存在的内容设置样式的. 没有内容怎么设置样式呢?别急!它们有一个content属性,一起使用就可以为某个选择器前.后的内容设置样式了. 下面就来了解一下:before伪元素和:after伪元素的用法. 视频教学:光盘/视频/3/3.7  替换指定位置.avi 

20_Shell语言———VIM编辑器基础知识三之窗口属性定制、配置文件及查找替换功能

Vim编辑器可以让用户按照需求来定制一些使用属性. 一.窗口属性定义 1)显示行号 行号不是内容,只是用来帮助用户确认文本所在的行.在vim编辑器中,如果要显示行号,可以在末行模式下输入: set number 如果想关闭,则可以在功能名称前面加上no,即: set nonumber 命令可以被简写,如set number 可以简写为 set nu:set nonumber 可以简写为 set nonu. 注意,上述设定仅对当前vim的进程有效,一旦当前进程关闭,这些设定就会失效,如果要使设定永

web基础知识(一)关于ajax传值最基础东西

HTTP方法之 GET对比POST GET:从指定的资源请求数据, POST:向指定的资源提交要被处理的数据 GET方法: 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回

线程基础知识

什么是线程: 在一个程序里的一个执行路线就叫做线程(thread).更准确的定义是:线程是"一个进程内部的控制序列" 一切进程至少都有一个执行线程 进程与线程 进程是资源竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也拥有自己的一部分数据 线程ID 一组寄存器 栈 errno 信号状态 优先级 fork和创建新线程的区别 当一个进程执行一个fork调用的时候,会创建出进程的一个新拷贝,新进程将拥有它自己的变量和它自己的PID.这个新进程的运行时间是独立的,它在执行时几乎