千家信息网

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系统 重大网络安全事件情景构建 亚马逊的服务器是哪个国家的 数据库管理员是人吗 软件开发计划表模版 网络安全工具收纳 怎么网数据库某个字段加数量
0