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 */