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