zoukankan      html  css  js  c++  java
  • PDO中的预处理

    PDO中的基本的原理和步骤和MySQL中的预处理都是一样的,只不过就是把MySQL中的预处理所有命令行的语法封装成了PDO对象的几个公开的方法而已!

    1.发送预处理语句

    此时,我们需要调用pdo对象的prepare方法,得到一个PDOStatement结果对象!

    2.绑定参数

    调用PDOStatement对象中的bindParam方法:

    3.执行预处理语句

    调用PDOStatement对象中的execute方法,如果执行成功,就返回true,如果执行失败就返回false!

    下面是代码

    <?php 
    
    /**
    * 利用PDO对象实现预处理操作
    */
    
    echo "<meta charset=utf-8>";
    
    //PDO类的实例化
    
    // 1 设置数据源相关参数
    $dbms = 'mysql';    //选择数据库类型
    $host = 'localhost';
    $port = '3306';
    $dbname = 'test';
    $charset = 'utf8';
    $dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";
    
    // 2 设置用户名密码
    $user = 'root';
    $pwd = '';
    
    // 3 实例化PDO类
    $pdo = new PDO($dsn,$user,$pwd);
    
    // 4 预处理
    // 4.1 发送预处理
    $sql = "insert into pdo values(null, ?, ?)";
    $stmt = $pdo->prepare($sql);
    // 4.2 绑定参数
    // 先把每个参数保存到一个变量中
    $name = 'qqqq';
    $age = '45';
    //再使用bindParam方法绑定参数变量
    $stmt->bindParam(1,$name);    //1代表第一个数据占位符
    $stmt->bindParam(2,$age);
    
    // 4.3 执行预处理语句
    $res = $stmt->execute();
    if ($res) {
        echo "预处理语句执行成功!";
    }else{
        echo "预处理语句执行失败!";
    }

    先查一下数据库的数据

    执行上述代码之后,结果如下:

    绑定参数的其他方法

    1 使用 :变量名 作为数据占位符

    // 4 预处理
    // 4.1 发送预处理
    $sql = "insert into pdo values(null, :name, :age)";
    $stmt = $pdo->prepare($sql);
    // 4.2 绑定参数
    // 先把每个参数保存到一个变量中
    $name = 'qqqq';
    $age = '45';
    //再使用bindParam方法绑定参数变量
    $stmt->bindParam(':name',$name);    
    $stmt->bindParam(':age',$age);

    在对应位置修改为以上代码,其他代码不动

    结果如下

    2.使用数组绑定参数

    // 4 预处理
    // 4.1 发送预处理
    //$sql = "insert into pdo values(null, ?, ?)";
    $sql = "insert into pdo values(null, :name, :age)";
    $stmt = $pdo->prepare($sql);
    // 4.2 绑定参数
    // 把每个参数保存到一个变量中
    $name = 'qqqq';
    $age = '45';
    // 使用数组绑定参数
    $arr = array(
        ':name'  =>  $name,
        ':age'   =>  $age 
        );
    
    // 4.3 执行预处理语句
    $res = $stmt->execute($arr);

    在对应位置修改为以上代码,其他代码不动

    结果如下:

    上述为在PDO中使用预处理的几种方式,可以对比着上一篇“MySQL的预处理技术”记忆! 

  • 相关阅读:
    树上后缀排序
    省选模拟赛day4
    吉司机线段树
    虚树复习
    bzoj 3065: 带插入区间K小值
    luogu P2462 [SDOI2007]游戏
    luogu P3783 [SDOI2017]天才黑客
    企业为取得交易性金融资产发生的交易费用应记入到投资收益科目
    旧手机数据迁移到新手机
    应收票据业务操作(背书、背书退回、退票)
  • 原文地址:https://www.cnblogs.com/zxf100/p/6818775.html
Copyright © 2011-2022 走看看