zoukankan      html  css  js  c++  java
  • PHP之pdo的预处理模式

     1 <?php
     2 
     3     /*
     4         PDO&PDOSstatement
     5             PDO:常规操作类。
     6             PDOStatement PDO语句结果集类,sql执行完毕,后续处理结果集时候,用PDOStatement
     7         预编译+数据绑定+执行
     8         
     9 
    10 
    11     */
    12 
    13     $sql = "SELECT * FROM `article` WHERE `id` =? ";        
    14     //预编译
    15     $prepare_res = $pdo->prepare($sql);
    16     //绑定参数
    17     $prepare_res->bindValue(1,1); //第一个1是第一个参数,第二个1是需要的值
    18     //执行
    19     $prepare_res->execute();
    20 
    21     $res_info = $prepare_res->fetch(PDO::FETCH_ASSOC);
    22     var_dump($res_info);
    23 
    24     /*
    25         预编译+数据绑定+执行
    26         优势:将语句的结构部分优先编译,结构部分指的是,将数据使用占位符进行替换,先进性编译; 再进行数据绑定,将数据绑定到编译好的SQL结构上。
    27         
    28         好处:1,更好的防止sql注入。结构和数据分离,可以从根本上解决sql注入问题。结构在数据绑定前,已经确定了。2,如果结构相同的sql被重复执行,只需要编译结构一次,后续直接进行数据绑定即可。体现代码的重用。
    29         bindValue(占位符|标签占位符,值,数据类型) 数据类型:PDO::PARAM_INT PDO::PARAM_STR
    30 
    31         PDOStamement对象常用的方法:
    32             $pdoStatement->fetchAll()
    33             $pdoStatement->fetch()
    34             $pdoStatement->fetchColumn()
    35             $pdoStatement->bindValue()
    36             $pdoStatement->execute()
    37             $pdoStatement->errorCode()
    38             $pdoStatement->errorInfo()
    39 
    40             $pdoStatement->coloseCursor() //用于释放结果集光标(指针)
    41             tips:在获取完数据后,最好调用该方法,释放结果集指针
    42 
    43             如果结果集中,存在多条数据,但是仅仅fetch其中部分,没有全部获取,此时如果需要处理新的结果集,一定要释放之前的结果集指针。
    44 
    45             $pdoStatement->rowCount(); //统计行数,兼结果集中记录数与影响的行数功能。
    46 
    47     */
  • 相关阅读:
    bzoj1101 [POI2007]Zap
    bzoj2648/2716 kdtree
    bzoj2850巧克力王国
    【bzoj1193】[HNOI2006]马步距离
    bzoj 4401 块的计数 思想+模拟+贪心
    【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题
    Ubuntu分区小知识与分区方案
    Ubuntu16.04安装x11VNC远程桌面
    Ubuntu用户权限管理(chown, chmod)
    Ubuntu新建用户组
  • 原文地址:https://www.cnblogs.com/sharecorner/p/6155179.html
Copyright © 2011-2022 走看看