第一步、发送预处理语句: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 '预处理语句执行失败!'; }