PHP_PDO预处理

  第一步、发送预处理语句:prepare()
  这里需要调用PDO对象的prepare方法,得到PDOStatement对象(结果对象)。

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#写一条预处理语句(:param 为执行的动态数据)
$sql = 'insert into test values(:name, :age, :gender)';
#发送预处理语句
$stmt = $pdo->prepare($sql);

  第二步、绑定参数:bindParam()

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#写一条预处理语句(:param 为执行的动态数据)
$sql = 'insert into test values(:name, :age, :gender)';
#发送预处理语句
$stmt = $pdo->prepare($sql);
#绑定参数
$name = '张文远';
$age = 55;
$gender = 1;
#这里的1,2,3代表占位符,第几个参数
$stmt->bindParam(1,$name);
$stmt->bindParam(2,$name);
$stmt->bindParam(3,$name);

  第三步、执行预处理语句:execute()

  如果执行成功就返回true,否则就是false

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#写一条预处理语句(:param 为执行的动态数据)
$sql = 'insert into test values(:name, :age, :gender)';
#发送预处理语句
$stmt = $pdo->prepare($sql);
#绑定参数
$name = '张文远';
$age = 55;
$gender = 1;
#这里的1,2,3代表占位符,第几个参数
$stmt->bindParam(1,$name);
$stmt->bindParam(2,$age);
$stmt->bindParam(3,$gender);
#执行预处理语句
$result = $stmt->execute();
if ($result) {
    echo '预处理语句执行成功!';
}else{
    echo '预处理语句执行失败!';
}

  绑定参数的其他方法
  ①使用  :变量名 作为占位符

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#写一条预处理语句(:param 为执行的动态数据)
$sql = 'insert into test values(:name, :age, :gender)';
#发送预处理语句
$stmt = $pdo->prepare($sql);
#绑定参数
$name = '张文远';
$age = 55;
$gender = 1;
#这里的 :param 代表占位符,不用按照顺序
$stmt->bindParam(:name,$name);
$stmt->bindParam(:age,$age);
$stmt->bindParam(:gender,$gender);
#执行预处理语句
$result = $stmt->execute();
if ($result) {
    echo '预处理语句执行成功!';
}else{
    echo '预处理语句执行失败!';
}

  使用数组绑定参数

#实例化PDO类
$pdo = new PDO($dns,$user,$pass);
#写一条预处理语句(:param 为执行的动态数据)
$sql = 'insert into test values(:name, :age, :gender)';
#发送预处理语句
$stmt = $pdo->prepare($sql);
#绑定参数
$name = '张文远';
$age = 55;
$gender = 1;
$arr = array(
    ':name' =>$name,
    ':age'    =>$age,
    'gender'=>$gender
    );
#执行预处理语句
$result = $stmt->execute($arr);
if ($result) {
    echo '预处理语句执行成功!';
}else{
    echo '预处理语句执行失败!';
}
原文地址:https://www.cnblogs.com/bk233/p/7364168.html