php_pdo预处理语句的示例分析
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,这篇文章主要介绍了php_pdo预处理语句的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、预处理语句可以带来两大好处:1、
千家信息网最后更新 2025年11月06日php_pdo预处理语句的示例分析
这篇文章主要介绍了php_pdo预处理语句的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
一、预处理语句可以带来两大好处:
1、查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次。当查询准备好后,数据库将分析、编译和优化
执行该查询的计划。对于复杂的查询,此过程要花费较长的时间,如果需要以不同参数多次重复相同的查询,那么该过程将大
大降低应用程序的速度。通过使用预处理语句,可以避免重复分析/编译/优化周期。简言之,预处理语句占用更少的资源,因
而运行得更快。
2、提供给预处理语句的参数不需要用引号括起来,驱动程序会自动处理。如果应用程序只使用预处理语句,可以确保不会
发生SQL 注入。(然而,如果查询的其他部分是由未转义的输入来构建的,则仍存在 SQL 注入的风险)。
二、预处理实例:
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(array(null,'test77','22',55));echo $stmt->rowCount();
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(null,'test77','22',55)); //4.执行$stmt->execute(array("id"=>null,"name"=>"ceshi3","sex"=>"w","age"=>66));echo $stmt->rowCount();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}
";}/* foreach($stmt as $row){ echo $row['id']."--------".$row['name']."
";} */最佳方式:
//1.连接数据库 try{ $pdo = new PDO("mysql:host=localhost;dbname=jikexueyuan","root","");}catch(PDOException $e){ die("数据库连接失败".$e->getMessage());}//2.预处理的SQL语句$sql = 'select catid,catname,catdir from cy_category where parentid = :parentid';$stmt = $pdo->prepare($sql);$params = array( 'parentid' => $subcatid);$stmt->execute($params); //$row = $stm->fetchAll(PDO::FETCH_ASSOC);while($row=$stmt->fetch(PDO::FETCH_ASSOC)){ var_dump($row); echo "
";}预处理批量操作实例:
prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");$stmt->bindParam(':name', $name);$stmt->bindParam(':value', $value);// 插入一行$name = 'one';$value = 1;$stmt->execute();// 用不同的值插入另一行$name = 'two';$value = 2;$stmt->execute();//用预处理语句进行重复插入//下面例子通过用 name 和 value 取代 ? 占位符的位置来执行一条插入查询。$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");$stmt->bindParam(1, $name);$stmt->bindParam(2, $value);// 插入一行$name = 'one';$value = 1;$stmt->execute();// 用不同的值插入另一行$name = 'two';$value = 2;$stmt->execute();//使用预处理语句获取数据//下面例子获取数据基于键值已提供的形式。用户的输入被自动用引号括起来,因此不会有 SQL 注入攻击的危险。$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");if ($stmt->execute(array($_GET['name']))) { while ($row = $stmt->fetch()) { print_r($row); }}?>感谢你能够认真阅读完这篇文章,希望小编分享的"php_pdo预处理语句的示例分析"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
预处理
语句
方式
查询
参数
数据
分析
不同
一行
篇文章
数据库
程序
示例
相同
例子
实例
应用程序
引号
过程
应用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
成都直销软件开发费用多少
智能获客软件开发mr.liu
数据库安全性的主要任务
力控组态有几个数据库
怎么登入服务器
雷士中央空调服务器
服务器跟qq有什么关联
服务器文件同步和共享有啥区别
接口报错如何查数据库中的数据
手机怎么做软件开发
即时通讯软件开发源码
成都人工智能软件开发价钱是多少
网络安全测评的实现方法
vs一个或多个数据库无法访问
公共重大网络安全维护
访谈公司如何应对网络安全
软件开发人员求职简历模板
菜谱小程序数据库
表情写入数据库报错
数据库接口api安全性
广东服务器电源怎么选
辽宁医院自助机软件开发
vb开发数据库应用程序
惠普服务器加装linux系统
重大网络安全事件情景构建
亚马逊的服务器是哪个国家的
数据库管理员是人吗
软件开发计划表模版
网络安全工具收纳
怎么网数据库某个字段加数量