zoukankan      html  css  js  c++  java
  • 87)PHP,PDO的预编译技术

    (1)

          

      比如以下的语句:

    1 insert into  biao1 values(‘李宁’,‘100’);
    2 insert into  biao1 values(‘安踏’,‘100’);
    3 insert into  biao1 values(‘匹克’,‘100’);
    4 insert into  biao1 values(‘乔丹’,‘100’);
    5 insert into  biao1 values(‘耐克’,‘100’);
    6 insert into  biao1 values(‘阿迪’,‘100’);
    7 insert into  biao1 values(‘361’,‘100’);

    那么,这个PDO就可以只是编译一次这些语句相同的地方,然后,根据区别来执行不同的语句。

    1 或者比如
    2 insert into team values(NULL,‘国安’);
    3 insert into team values(NULL,‘恒大’);
    4 insert into team values(NULL,‘建国’);
    5 insert into team values(NULL,‘绿地’);

    语法的实现:

        

    11)编译统一的结构,
    22)绑定数据到中间编译结果上,
    33)执行绑定了数据的语句
    11)编译统一的结构,
    2             $PDOStatement = $pdo->prepare(SQL的结构);
    3             SQL结构中的数据部分,可以使用问好,或者冒号标签的语法来占用:

    12)绑定数据到中间编译结果上,
    2              $PDOStatement->bindValue()

    13)执行绑定了数据的语句    
    2               $PDOStatement->execute();

     预编译的优点:

          更好的防止SQL注入,是因为预编译时,不需要用户的数据参与。编译时,结构固定,导致用户数据不能影响到SQL的结构

    普通的执行方法:

          $pdo->query();

          $pdo->exec()

    如果需要防止SQL注入,需要人为的转义用户数据,使用的方式是$pdo->quote()方法。转义并使用引号包裹。

        

  • 相关阅读:
    UART和RS232/RS485的关系是什么?
    Async & Await 的前世今生
    asp.net EFcore配置链接sqlserver
    ASP.NET Core启动流程
    ASP.NET Core 过滤器
    Nginx简介及配置文件详解
    3.ASP.NET Core Docker学习-构建单机多容器环境
    2.ASP.NET Core Docker学习-镜像容器与仓库
    asp.net core 依赖注入
    1.ASP.NET Core Docker学习-Docker介绍与目录
  • 原文地址:https://www.cnblogs.com/xiaoyoucai/p/7397163.html
Copyright © 2011-2022 走看看