版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PDOPDO简介PDO(PHPDataObjectsLayer)提供一个公共的数据库系统接口,它使用C语言做底层开发,运行速度比较快。PDO扩展为PHP访问数据库定义了一个轻量级的、一致性的接口,它提供了一个数据访问抽象层PDO以PHP5.1为基础进行设计,严格意义上讲归为PHP5的SPL库之一,与MySQLi扩展功能相似PDO的安装安装PDOMySQL驱动Linux:
cd/ports/database/pecl-PDO_MYSQL
makeinstallWindows:自带,不需要安装配置文件Linux:extension=pdo_mysql.soWindows:extension=pdo_mysql.dllPDO类query()exec()prepare()quote()beginTransaction()rollBack()commit()errorCode()errorInfo()setAttribute()getAttribute()lastInsertId()PDOStatement类execute()fetch()fetchAll()fetchColumn()setFetchMode()rowCount()setAttribute()getAttribute()errorCode()errorInfo()bindParam()bindColumn()bindValue()nextRowset()columnCount()rowCount()nextRowset()getColumnMeta()closeCursor()PDO连接数据库PDO连接数据库和其他数据库抽象层区别不大try{ $con=newPDO
('mysql:host=localhost;dbname=book','root','root'); //如果连接失败,则抛出异常}catch(PDOException$e){ echo$e->getMessage();}连接字符串MySQL"mysql:host=$host;dbname=$db"SQLite"sqlite:$db"PostgreSQL"pgsql:host=$hostdbname=$db",持久连接持久连接速度快,不用每次开关连接。$opt=array(PDO::ATTR_PERSISTENT=>TRUE);try{ $con=newPDO
('mysql:host=localhost;dbname=book','root','root',$opt); //如果连接失败,则抛出异常}catch(PDOException$e){ echo$e->getMessage();}DSN-ODBC连接使用一个DSN数据源名称,定义ODBC数据源驱动连接ini_set("pdo.dsn.dbserver","mysql::test");try{ $con=newPDO('dbserver'); //如果连接失败,则抛出异常}catch(PDOException$e){ echo$e->getMessage();}错误与异常处理设置PDO获取得错误信息的方式$con->setAttribute
(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXECPTION);PDO::ERROR_SILENTPDO::ERROR_WARNINGPDO::ERROR_EXCEPTION面向过程$con->errorCode():SQL语句错误代码$con->errorInfo():错误信息面向对象捕获PDOException异常对象使用PDO查询PDO的查询方式直接查询 $rs=$con->exec("select*frombooks"); $rs=$con->query("select*frombooks");预处理 $st=$con->prepare("select*frombookswhereid=?andname=?); $st->execute(array(201,'alex')); $row=$st->fetch();获取查询结果获取查询结果包括:数组、字符串、对象、回调函数等fetchColumn()fetch()fetchAll()setFetchMode()PDO::FETCH_NUMPDO::FETCH_ASSOCPDO::FETCH_CLASS$sql="SELECT*FROMbooks";$rs=$conn->query($sql);while($row=$rs->fetch(PDO::FETCH_ASSOC)){ echo$row['title']."<br>";}绑定参数第一种写法,使用?号$sql="insertbooks(id,name,title)values(?,?,?);";$stmt=$con->prepare($sql);$stmt->execute(array(219,"alex","PHP"));第二种写法,使用:号加上标识符$sql="insertbooks(id,name,title)values(:id,:name,:title);";$stmt=$con->prepare($sql);$stmt->execute(array("id"=>219,"name"=>"alex","title"=>"PHP"));第三种方法,bindValue()$sql="insertbooks(id,name,title)values(?,?,?);";$stmt=$con->prepare($sql);$stmt->bindValue(1,219);$stmt->bindValue(2,"alex");$stmt->bindValue(3,"PHP"));$stmt->execute();第四种写法$sql="insertbooks(id,name,title)values(:id,:name,:title);";$stmt=$con->prepare($sql);$stmt->bindValue(":id",219);$stmt->bindValue(":name","alex");$stmt->bindValue(":title","PHP"));$stmt->execute();绑定结果集第一种$sql="selecttitle,namefrombooks";$stmt=$con->prepare($sql);$stmt->execute();$stmt->bindColum(1,$title);$stmt->bindColum(2,$name);while($stmt->fetch(PDO::FETCH_BOUND)){ echo$title."".$name."<br>";}过滤字符串使用PDO过滤引起SQL注入的方法,过滤特殊字符$con->quote()$name=$con->quote($_POST["name"]);BLOB存储图片$blob=fopen("img.jpg","rb");$sql="insertbooks(imgdate)values(?)";$stmt=$con->prepare($sql);$stmt->bindParam(1,$blob,PDO::PARAM_LOB);$stmt->execute();读取图片$sql="selectimgdatefrombookswhereid=201";$stmt=$con->prepare($sql);$stmt->execute();$stmt->bindColumn(1,$blob,PDO::PARAM_LOB);$stmt->fetch(PDO::FETCH_BOUND);$img=stream_get_contents($blob);//fpassthru($blob);header("Content-Type:image/jpeg");echo$img;事物处理PDO驱动程序支持所有的事物数据库$con->beginTransaction();if($con->exec($sql)===FALSE){ $con->rollback();}$con->commit();存储过程使用PDO调用存储过程$st=$con->prepare("CALLproc(?)");$st->bindParam(1,$str);$str="info";$st->execute();OUTParam$st=$con->prepare("CALLproc(?)");$st->bindParam(1,$str,
PDO_PARAM_STR,40
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于ArcGIS的校园全景规划设计 虚拟土地规划大赛作品
- 小升初模拟测试预测卷(试题)-2023-2024学年六年级下册数学 人教版
- 宠物殡葬师理论知识考试题库50题
- 《混凝土结构设计原理(新形态活页式)》 课件 38.受弯构件斜截面破坏的主要形态
- 石材翻新护理用品项目综合评估报告
- 地下智能输电系统项目可行性报告
- 金工实训报告铣工
- 《长城》教学设计方案
- 2024年广东省九年级数学中考一模试卷(含答案)
- 施工员-装饰方向-岗位技能(施工员)证考试题库及答案
- (最新)冠心病诊断与治疗指南
- 《动能和势能》说课稿
- 天地人三才与五行配置一览表
- U8常用表及表名说明
- EN 10213-2021(中文)
- 拆除施工方案
- 计算机网络管理课后习题答案(雷震甲+西安电子科技大学...
- 换热器基础知识测试题
- 脚手架(钢管)现场进场质量验收记录
- 平面设计需求单(CN)
- 箱型桥施工方案
评论
0/150
提交评论