php pdo 关闭,php pdo预处理
什么是預處理語句?
可以把它看作是想要運行的 SQL 的一種編譯過的模板,它可以使用變量參數進行定制。
預處理語句可以帶來兩大好處:
查詢僅需解析(或預處理)一次,但可以用相同或不同的參數執行多次。當查詢準備好后,數據庫將分析、編譯和優化執行該查詢的計劃。對于復雜的查詢,此過程要花費較長的時間,如果需要以不同參數多次重復相同的查詢,那么該過程將大大降低應用程序的速度。通過使用預處理語句,可以避免重復分析/編譯/優化周期。簡言之,預處理語句占用更少的資源,因而運行得更快。
提供給預處理語句的參數不需要用引號括起來,驅動程序會自動處理。如果應用程序只使用預處理語句,可以確保不會發生SQL 注入。(然而,如果查詢的其他部分是由未轉義的輸入來構建的,則仍存在 SQL 注入的風險)。
預處理語句如此有用,以至于它們唯一的特性是在驅動程序不支持的時PDO 將模擬處理。這樣可以確保不管數據庫是否具有這樣的功能,都可以確保應用程序可以用相同的數據訪問模式。
php pdo預處理語句之查詢
$dns = 'mysql:host=數據庫地址;dbname=數據庫名稱';
$username = '數據庫帳號';
$password = '數據庫密碼';
// 1.連接數據庫,創建PDO對象
$pdo = new PDO($dns,$username,$password);
// 2.準備SQL語句,創建預處理對象
$sql = "SQL語句";
$stmt = $pdo->prepare($sql);
// 3. 執行SQL語句
$stmt->execute();
// 4. bindColumn()將結果集中的列綁定到指定變量上
// 注意與bindParam()的區別
$stmt->bindColumn('id', $id, PDO::PARAM_INT);
$stmt->bindColumn('name', $name, PDO::PARAM_STR, 15);
$stmt->bindColumn('position', $position, PDO::PARAM_STR, 20);
// PDO::FETCH_BOUND: 指定獲取方式,將結果集的列綁定到指定變量(可選)
while ($stmt->fetch(PDO::FETCH_BOUND)) {
echo 'id=' . $id . ', name=' . $name . ', position='. $position ; }
// 5. 關閉連接,如果不斷開,系統也會自動切斷
$pdo = null;
php pdo預處理語句之插入數據
$dns = 'mysql:host=數據庫地址;dbname=數據庫名稱';
$username = '數據庫帳號';
$password = '數據庫密碼';
// 1.連接數據庫,創建PDO對象
$pdo = new PDO($dns,$username,$password);
// 2.準備SQL語句,創建預處理對象
$sql = "INSERT INTO `staff` (name,age,sex,position,mobile,hiredate) VALUES (:name,:age,:sex,:position,:mobile,:hiredate)";
$stmt = $pdo->prepare($sql);
// 3.綁定參數到指定的變量名
$stmt->bindParam(':name', $name);
$stmt->bindParam(':age', $age);
$stmt->bindParam(':sex', $sex);
$stmt->bindParam(':position', $position);
$stmt->bindParam(':mobile', $mobile);
$stmt->bindParam(':hiredate', $hiredate);
// 4.插入一行數據
$name ='天勤猿';
$age ='22';
$sex ='1';
$position ='程序猿';
$mobile ='188888888';
$hiredate ='1548999267';
// 5. 執行SQL語句
$stmt->execute();
// 6. 關閉連接,如果不斷開,系統也會自動切斷
$pdo = null;
天勤 , 版權所有丨如未注明 , 均為原創丨本網站采用BY-NC-SA協議進行授權
轉載請注明原文鏈接:php pdo預處理
總結
以上是生活随笔為你收集整理的php pdo 关闭,php pdo预处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android notification
- 下一篇: java中methods方法_java中