PDO专题(五)-PDO的预处理操作

[复制链接]
查看: 1666|回复: 31
发表于 2022-10-26 15:16:06 | 显示全部楼层 | 阅读模式
预处理好处是:编译一次多次执行,用来解决一条SQL语句多次执行的问题,提高了执行效率。
预处理语句:
  1. prepare 预处理名字 from 'sql语句'
复制代码
执行预处理
  1. execute 预处理名字 [using 变量]
复制代码


PDO中的预处理——位置占位符
  1. <?php
  2.     $dsn='mysql:dbname=data;charset=utf8';
  3.     $pdo=new PDO($dsn,'root','root');
  4.     //创建预处理对象
  5.     $stmt=$pdo->prepare("insert into bank values (?,?)");   //?是占位符
  6.     //执行预处理
  7.     $cards=[
  8.         ['1003',500],
  9.         ['1004',100]
  10.     ];
  11.     foreach($cards as $card){
  12.         //绑定参数,并执行预处理,
  13.         //方法一:
  14.         /*
  15.         $stmt->bindParam(1, $card[0]);  //给SQL语句传参。占位符的位置从1开始
  16.         $stmt->bindParam(2, $card[1]);
  17.         $stmt->execute();               //执行预处理
  18.          */
  19.         //方法二:
  20.         /*
  21.         $stmt->bindValue(1, $card[0]);//给SQL语句传参。占位符的位置从1开始
  22.         $stmt->bindValue(2, $card[1]);
  23.         $stmt->execute();
  24.          */
  25.         //方法三:如果占位符的顺序和数组的顺序一致,可以直接传递数组
  26.         $stmt->execute($card);  
  27.     }
复制代码


PDO专题(五)-PDO的预处理操作 PDO专题(五)-PDO的预处理操作

PDO中的预处理——参数占位符
  1. <?php
  2. $dsn='mysql:dbname=data;charset=utf8';
  3. $pdo=new PDO($dsn,'root','root');
  4. //创建预处理对象
  5. $stmt=$pdo->prepare("insert into bank values (:p1,:p2)");   //:p1,:p2是参数占位符
  6. //执行预处理
  7. $cards=[
  8.     ['p1'=>'1005','p2'=>500],
  9.     ['p1'=>'1006','p2'=>1000]
  10. ];
  11. foreach($cards as $card){
  12.     //方法一:
  13.     /*
  14.     $stmt->bindParam(':p1', $card['p1']);
  15.     $stmt->bindParam(':p2', $card['p2']);
  16.     $stmt->execute();
  17.      */
  18.     //方法二:但数组的下标和参数名一致的时候就可以直接传递关联数组
  19.     $stmt->execute($card);
  20. }
  21. ?>
复制代码
PDO专题(五)-PDO的预处理操作 PDO专题(五)-PDO的预处理操作

总结
1、?是位置占位符
2、参数占位符以冒号开头
3、$stmt->bindParam()和$stmt->bindValue()区别
  1. bindParam的第二个参数只能是变量。bindValue的第二个参数可以是变量也可以是字面量。
复制代码
4、预处理的好处
  1. 提高执行效率
  2. 提高安全性
复制代码


易博软件介绍

0

主题

19

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-2-15 06:42:11 | 显示全部楼层
受益非浅  

0

主题

24

帖子

13

积分

营销入门

Rank: 2

积分
13
发表于 2023-2-16 06:53:55 | 显示全部楼层
看了此帖,让我更加的感到我自身的不足`~~  我要更加努力的学习~学习~~  学海是无涯的`~~~

0

主题

47

帖子

25

积分

终身会员

Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25Rank: 25

积分
25

终身会员

发表于 2023-2-18 10:23:05 | 显示全部楼层
我要学习!!!

1

主题

192

帖子

98

积分

营销菜鸟

Rank: 3Rank: 3

积分
98
发表于 2023-2-20 04:38:18 | 显示全部楼层
三人行,必有我师

0

主题

18

帖子

10

积分

营销入门

Rank: 2

积分
10
发表于 2023-2-21 09:53:33 | 显示全部楼层
不错!  

0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-2-22 21:08:23 | 显示全部楼层
  谢谢你给我上了一堂编程人生宝贵的一课,真是活到老,学到老。

0

主题

17

帖子

9

积分

营销入门

Rank: 2

积分
9
发表于 2023-2-24 19:25:17 | 显示全部楼层
从大体上说,我也可以算的上一个初级程序员吧,学的语言很多,不过都不是很精,软件工程学的一点都不好,大部分原因是在学校和老师,谁让我们在这样的垃圾学校拉,不过,我在c和vb上有一点基础,可以这样说,我在学校还可以吧,不过看了你的帖子,我感到我真的不行。    以后希望大家在c和vb和单片机的c51方面多说说,谢谢!

0

主题

17

帖子

9

积分

营销入门

Rank: 2

积分
9
发表于 2023-2-25 17:35:06 | 显示全部楼层
我对编程也略知一二,现正准备找一个软件公司,但看了你的这篇文章之后,我才发现自己有多重(是半斤还是八两?),我看我先在学习一段时间,再修练修练,等到修练成功了,再去软件公司,在此,我先谢谢你对我的提醒.  

0

主题

37

帖子

20

积分

营销入门

Rank: 2

积分
20
发表于 2023-3-1 07:55:12 | 显示全部楼层
虽然我是一个外行,感受不是很深刻,但收益颇多!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表