php 预处理原理,PHP的PDO对象预处理的2种实现方法,实现原理详解
PDO預處理
$author = '李白';
$kind? ?= '五言絕句';
$id? ? ?= '5';
$query = 'SELECT * FROM poetry WHERE author=? AND kind=? AND id>?';//用問號代替要預處理的值
$stmt = $pdo->prepare($query);//開啟預處理,將 sql 語句傳入
實例代碼開始:
$stmt->bindValue(1, $author, [參數3]);//設定 ? 1位置的值
$stmt->bindValue(2, $kind, [參數3]);//設定 ? 2位置的值
$stmt->bindValue(3, $id, [參數3]);//設定 ? 3位置的值
參數3:? PDO::PARAM_STR:默認值,字符串類型 通常不寫第三個參數
PDO::PARAM_INT:整數類型
$suc = $stmt->execute();//以預處理執行前面傳入的 SQL 語句
實例代碼結束:
$args = [$author, $kind, $id];
$suc? = $stmt->execute($args); 以上綁定方式可簡寫為此方法
實例代碼開始:
$query = 'SELECT * FROM poetry WHERE author=:au AND kind=:ki AND id>:id';
$stmt? = $pdo->prepare($query);
$stmt->bindValue(':au', $author);
$stmt->bindValue(':ki', $kind);
$stmt->bindValue(':id', $id);
$suc = $stmt->execute();以上綁定方式也可寫為此方法,:au,:ki,:id稱為命名占位符
實例代碼結束:
$args = [':au'=>$author, ':ki'=>$kind, ':id'=>$id];
$suc? = $stmt->execute($args); 以上綁定方式可簡寫為此方法
$arr = $stmt->fetchAll(PDO::FETCH_ASSOC);//得到全部預處理查詢結果,為索引數組
$pdo->beginTransaction();:開啟數據庫事務機制(開啟事務機制的表必須為INNODB)
$pdo->commit();:使事務機制之后的改動生效
$pdo->rollBack();:使事務機制之后的改動回滾
總結
以上是生活随笔為你收集整理的php 预处理原理,PHP的PDO对象预处理的2种实现方法,实现原理详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php7.2 swoole_loader
- 下一篇: mysql储存过程编程,MySQL 5.