美文网首页
PHP简单PDO

PHP简单PDO

作者: inspireboom | 来源:发表于2017-08-15 15:58 被阅读0次

PDO(PHP Data Object)机制防御sql注入,这是因为不能使用PDO扩展本身执行任何数据库操作,而sql注入的关键就是通过破坏sql语句结构执行恶意的sql命令。

PDO库中定义了一些静态常量,这些常量用PDO :: <NAME>的方式进行调用。比如在prepare()语句中经常这样使用:

$query=$db->prepare('select * from book where cat_id=:id limit :offset, :limit', array (
PDO :: ATTR_CURSOR => PDO :: CURSOR_FWDONLY
));

PDO中的连接和连接管理

$db = new PDO('mysql:host=localhost;dbname=test', $user, $pass, array(
    PDO::ATTR_PERSISTENT => true
));

PDO中的查询操作:exec/query/prepared statement

1)PDO::exec()一般用于执行一次的SQL语句,返回受查询影响的行数。它不适用于SELECT语句,如果需要用一次是SELECT语句,可以用PDO::query();也不适用于多次使用的语句,如果有多次使用的需求,考虑用PDO::prepare()。
(2)PDO::query()用于执行一次SELECT语句,执行后应当随即使用PDOStatement::fetch()语句将结果取出,否则立即进行下一次的PDO::query()将会报错。在2.PDO实例部分,为了得到查询数据的总量,就用了PDO::query()语句。
(3)PDOStatement表示一个prepared statement语句,而在执行之后,又将返回一组关联数组的结果。如果一类查询(查询结构相似而具体的参数不一)需要一次解析而执行使用很多次,可以先用prepared statement,这样可以为具体的查询的执行做好准备,避免了分析、编译、优化的循环,将减少资源占用率,从而提高运行效率。通过对数据库进行prepare操作,便会返回PDOStatement数据类型,从而在其基础上展开execute、fetch等进一步的操作。

prepare特殊使用

//用位置参入参数
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);

//用名称传入参数
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

$name = 'one';
$value = 1;
$stmt->execute();

/////////////////////////////////////////////
//也可以这样实现
//用位置参入参数,indexed array
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$name = 'one';
$value = 1;
$stmt->execute(array($name,$value));

//用名称传入参数, associated array
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$name = 'one';
$value = 1;
$stmt->execute(array(':name'=>$name,':value'=>$value));

相关文章

  • PDO(PHP数据对象)

    一、PDO概述 1、PDO简介 1)PDO是PHP数据对象(PHP Data Object)的缩写。2)PDO扩展...

  • PDO:预处理语句(参数化查询)

    @(PDO(PHP data object/PHP数据对象))[PDO|预处理语句|参数化查询] PDO Tuto...

  • PHP简单PDO

    PDO(PHP Data Object)机制防御sql注入,这是因为不能使用PDO扩展本身执行任何数据库操作,而s...

  • PHP级联菜单

    index.php

  • pdo基本使用

    pdo基本使用 【PDO是啥】 PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都...

  • PHP链接ACCESS

    PHP的设置 使用PHP PDO连接Access数据库PDO功能需PHP5以上支持,在使用PDO之前你必须确保安装...

  • pdo一个提取自微擎中的pdo方式处理数据库的工具类

    1.db.class.php 2.PDO.class.php 3.PDO_mysql.class.php 4.PD...

  • php版本进化

    以下只是简单记录:PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束PHP5.2:JSO...

  • 第4天 PDO

    PDO 1. PDO概述 PDO,PHP Data Object,也是PHP操作数据库的一个扩展pdo扩展有一个很...

  • 了解PDO

    1、pdo的概念 PDO全称:PHP Data Object ( php 数据对象 )是一系列PHP类,抽象...

网友评论

      本文标题:PHP简单PDO

      本文链接:https://www.haomeiwen.com/subject/mjfvrxtx.html