PHP开发_PDO应用
来源:互联网 发布:黑魂3人物捏脸数据 编辑:程序博客网 时间:2024/05/23 02:06
1、PDO的介绍
PDO(PHP数据对象) 是一个轻量级的、具有兼容接口的PHP数据连接拓展,是一个PHP官方的PECL库,随PHP 5.1发布,需要PHP 5的面向对象支持,因而在更早的版本上无法使用。它所提供的数据接入抽象层,具有与具体数据库类型无关的优势,为它所支持的数据库提供统一的操作接口。由于PDO是在底层实现的统一的数据库操作接口,因而利用它能够实现更高级的数据库操作,比如存储过程的调度等。要使用PDO操作数据库,必须要有相应的dll文件。
2、创建PDO的实例
// 第一种方式,通过代码来配置<?phptry{ $pdo = new PDO("mysql:host=localhost;dbname=test","root","hymmysql");}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}print_r($pdo);?>// 第二种方式,通过自定义文件配置<?phptry{$pdo = new PDO("uri:mysqlPdo.ini","root","hymmysql");}catch(PDOException $e){die("数据库连接失败".$e->getMessage());}print_r($pdo);?>// 第三种方式,通过php.ini文件配置// 在php.ini文件中:[PDO]pdo.dsn.mysqlpdo = "mysql:host=localhost;dbname=test";<?phptry{ $pdo = new PDO("mysqlpdo","root","hymmysql"); $pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);// 设置属性 $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT );// 获取属性}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}print_r($pdo);?>
3、PDO操作数据库
<?php//1.连接数据库try{ $pdo = new PDO("mysql:host=localhost;dbname=test","root","hymmysql");}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}//2.执行query(查询)返回的是一个预处理对象$sql = "select * from stu";$stmt = $pdo->query($sql);// 记性查询语句$list = $stmt->fetchAll(PDO::FETCH_ASSOC);// 介绍数据记录的方式//3.解析数据(一次把所有的数据解析完)foreach($list as $val){ echo $val['id']."-------".$val['name']."<br>";}//$sql = "insert into stu values(null,'oracle','w',44)";//$sql = "delete from stu where id=11";$sql = "update stu set name='js' where id=3";$res = $pdo->exec($sql);// 直接执行sql语句if($res){ echo "success";}//4.释放资源$stmt = null;$pdo = null;?>
4、错误信息的处理
<?php//默认是不提示的 需要用 errorCode() errorInfo()方法来获取try{ $pdo = new PDO("mysql:host=localhost;dbname=<span style="font-family: Arial, Helvetica, sans-serif;">test</span><span style="font-family: Arial, Helvetica, sans-serif;">","root","");</span> // 错误信息的三种模式 //$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);// 警告 //$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION );// 异常 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_SILENT);// 默认}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}$sql = "insert into stuu values(null,'jike','w',55)";// 设置了异常模式才能捕获异常try{ $res = $pdo->exec($sql);}catch(PDOException $e){ echo $e->getMessage();}/* if($res){echo "OK";}else{//echo $pdo->errorCode();//print_r($pdo->errorInfo());} */?>
5、预处理
1)?号式的预处理句,一共有3种方式
<?php//1.连接数据库try{ $pdo = new PDO("mysql:host=localhost;dbname=test","root","");}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}//2.预处理的SQL语句$sql = "insert into stu(id,name,sex,age) values(?,?,?,?)";$stmt = $pdo->prepare($sql);//3.对?号的参数绑定//(第一种绑定方式)$stmt->bindValue(1,null);$stmt->bindValue(2,'test55');$stmt->bindValue(3,'w');$stmt->bindValue(4,22);//第二种绑定方式$stmt->bindParam(1,$id);$stmt->bindParam(2,$name);$stmt->bindParam(3,$sex);$stmt->bindParam(4,$age);$id=null;$name="test66";$sex="m";$age=33;//第三种绑定方式$stmt->execute(array(null,'test77','22',55));//4.执行$stmt->execute(<span style="font-family: Arial, Helvetica, sans-serif;">$stmt</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>echo $stmt->rowCount();
2)别名式的预处理句,一共有3种方式
<?php//1.连接数据库 try{$pdo = new PDO("mysql:host=localhost;dbname=test","root","");}catch(PDOException $e){die("数据库连接失败".$e->getMessage());}//2.预处理的SQL语句$sql = "insert into stu(id,name,sex,age) values(:id,:name,:sex,:age)";$stmt = $pdo->prepare($sql);//3.对?号的参数绑定//(第一种绑定方式)$stmt->bindValue("id",null);$stmt->bindValue("name",'ceshi1');$stmt->bindValue("sex",'w');$stmt->bindValue("age",22);//第二种绑定方式$stmt->bindParam("id",$id);$stmt->bindParam("name",$name);$stmt->bindParam("sex",$sex);$stmt->bindParam("age",$age);$id=null;$name="ceshi2";$sex="m";$age=33;//第三种绑定方式$stmt->execute(array("id"=>null,"name"=>"ceshi3","sex"=>"w","age"=>66)); <pre name="code" class="php">$stmt->execute(<span style="font-family: Arial, Helvetica, sans-serif;">$stmt</span><span style="font-family: Arial, Helvetica, sans-serif;">);</span>echo $stmt->rowCount();
<?php//1.连接数据库 try{ $pdo = new PDO("mysql:host=localhost;dbname=test","root","");}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}//2.预处理的SQL语句$sql = "select id,name,sex,age from stu";$stmt = $pdo->prepare($sql);//3.执行$stmt->execute();$stmt->bindColumn(1,$id);$stmt->bindColumn(2,$name);$stmt->bindColumn("sex",$sex);$stmt->bindColumn("age",$age);// 采用与处理方式遍历数据while($row=$stmt->fetch(PDO::FETCH_COLUMN)){ echo "{$id}:{$name}:{$sex}:{$age}<br>";}// 普通方式遍历数据 foreach($stmt as $row){echo $row['id']."--------".$row['name']."<br>";}
6、事务的处理
<?php//采用预处理+事务处理执行SQL操作//1.连接数据库try{ $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root",""); $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}//2.执行数据操作try{ $pdo->beginTransaction(); //开启事物 $sql = "insert into stu(id,name,sex,age) values(?,?,?,?)"; $stmt = $pdo->prepare($sql); //传入参数 $stmt->execute(array(null,"test4","w",11)); $stmt->execute(array(null,"test5","w",11)); $stmt->execute(array(null,"test3","w",11)); $pdo->commit(); //提交事物}catch(PDOException $e){ die("执行失败".$e->getMessage()); $pdo->roolback();// 进行事务回滚}
0 0
- PHP开发_PDO应用
- Php开发应用安全
- 精通PHP+MySQL应用开发
- 用PHP开发桌面应用
- TAE PHP应用开发指南
- TAE PHP应用开发指南
- 高性能PHP应用开发
- 开发web应用之php
- php 开发移动应用接口
- VS.PHP + YiiFramework 组合开发PHP应用
- 测试驱动开发在PHP中的应用
- PHP开发中session应用详解
- PHP编程在WAP开发中的应用
- 关于ROR,PHP,Web应用开发
- PHP开发中session应用详解
- 使用PHP开发校内网应用
- 使用PHP开发校内网应用
- PHP开发大型Web应用浅析
- C语言中与调试相关的宏
- 2015年阿里巴巴实习生招生在线笔试部分试题
- Java中的习惯用法总结
- linux文件系统制作
- ASP.NET MVC验证 - 使用哪种方式实现客户端服务端双重异步验证
- PHP开发_PDO应用
- java微信公众平台开发教程分享
- Android之Bitmap之圆形头像
- RedHat Enterprise Linux 6.2使用Centos 6 的yum源
- 自定义ViewFlow使用,ScrollView中嵌套ViewFlow滑动问题解决(---My 20150407)
- 体验Azure的 Automation “自动化” 服务预览版
- 对PHP static的理解
- 慎用自动装箱
- CSipSimple程序