人亦已歌 发表于 2022-10-26 15:16:06

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

预处理好处是:编译一次多次执行,用来解决一条SQL语句多次执行的问题,提高了执行效率。预处理语句:prepare 预处理名字 from 'sql语句'执行预处理execute 预处理名字

PDO中的预处理——位置占位符
<?php
    $dsn='mysql:dbname=data;charset=utf8';
    $pdo=new PDO($dsn,'root','root');
    //创建预处理对象
    $stmt=$pdo->prepare("insert into bank values (?,?)");   //?是占位符
    //执行预处理
    $cards=[
      ['1003',500],
      ['1004',100]
    ];
    foreach($cards as $card){
      //绑定参数,并执行预处理,
      //方法一:
      /*
      $stmt->bindParam(1, $card);//给SQL语句传参。占位符的位置从1开始
      $stmt->bindParam(2, $card);
      $stmt->execute();               //执行预处理
         */
      //方法二:
      /*
      $stmt->bindValue(1, $card);//给SQL语句传参。占位符的位置从1开始
      $stmt->bindValue(2, $card);
      $stmt->execute();
         */
      //方法三:如果占位符的顺序和数组的顺序一致,可以直接传递数组
      $stmt->execute($card);
    }


PDO中的预处理——参数占位符
<?php
$dsn='mysql:dbname=data;charset=utf8';
$pdo=new PDO($dsn,'root','root');
//创建预处理对象
$stmt=$pdo->prepare("insert into bank values (:p1,:p2)");   //:p1,:p2是参数占位符
//执行预处理
$cards=[
    ['p1'=>'1005','p2'=>500],
    ['p1'=>'1006','p2'=>1000]
];
foreach($cards as $card){
    //方法一:
    /*
    $stmt->bindParam(':p1', $card['p1']);
    $stmt->bindParam(':p2', $card['p2']);
    $stmt->execute();
   */
    //方法二:但数组的下标和参数名一致的时候就可以直接传递关联数组
    $stmt->execute($card);
}
?>
总结
1、?是位置占位符2、参数占位符以冒号开头3、$stmt->bindParam()和$stmt->bindValue()区别bindParam的第二个参数只能是变量。bindValue的第二个参数可以是变量也可以是字面量。4、预处理的好处提高执行效率
提高安全性

ggggmqjjj 发表于 2023-2-15 06:42:11

受益非浅

fear317 发表于 2023-2-16 06:53:55

看了此帖,让我更加的感到我自身的不足`~~我要更加努力的学习~学习~~学海是无涯的`~~~

sxxyzy 发表于 2023-2-18 10:23:05

我要学习!!!

meidi 发表于 2023-2-20 04:38:18

三人行,必有我师

cfs1982 发表于 2023-2-21 09:53:33

不错!

netbug 发表于 2023-2-22 21:08:23

谢谢你给我上了一堂编程人生宝贵的一课,真是活到老,学到老。

hxy1980hxy 发表于 2023-2-24 19:25:17

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

whtaaa 发表于 2023-2-25 17:35:06

我对编程也略知一二,现正准备找一个软件公司,但看了你的这篇文章之后,我才发现自己有多重(是半斤还是八两?),我看我先在学习一段时间,再修练修练,等到修练成功了,再去软件公司,在此,我先谢谢你对我的提醒.

odehz 发表于 2023-3-1 07:55:12

虽然我是一个外行,感受不是很深刻,但收益颇多!!
页: [1] 2 3 4
查看完整版本: PDO专题(五)-PDO的预处理操作