php pdo 参数绑定,PDO预处理之参数绑定和列绑定
摘要:PDO查詢中,2個綁定操作:參數綁定與列綁定;參數綁定:bindParm() 和 bindValue();bindParm(':占位符',變量,類型常量) 類型常量默認為字符串bindValue(':占位符',值或變量,類型常量) 如果直接傳值,可省略類型常量execute([':占位符'=>值/變量]) :將參數以數組方
PDO查詢中,2個綁定操作:參數綁定與列綁定;
參數綁定:bindParm() 和 bindValue();
bindParm(':占位符',變量,類型常量) 類型常量默認為字符串
bindValue(':占位符',值或變量,類型常量) 如果直接傳值,可省略類型常量
execute([':占位符'=>值/變量]) :將參數以數組方式與SQL語句的占位符綁定
列綁定:
bindColumn('列名或索引',變量,變量類型,最大長度),如果是字符串類型,應該指出最大長度進行預分配
fetch() 與 while 解析遍歷結果集
MySQL對游標查詢支持不夠完善,如果想在結果集中巡航,請把結果集解析到數組中進行<?php
//?-?1?數據連接,創建PDO對象
$pdo?=?new?('mysql:host=127.0.0.1;dbname=php_edu;','root','root');
//?-?2?執行預處理方法,創建預處理對象?STMT
//?:status?命名占位符
$sql?=?"SELECT?'user_id','name','eamil'?FROM?'user'??WHERE?'status'?=:status";
$stmt?=?$pdo->prepare($sql);
//?-?3?執行
//?參數綁定
$status?=?1;
//?$stmt->bindParam(':status',$status,PDO::PARAM_INT);
//?bindParm()?和?bindValue()基本等價,區別在于第二個參數。
//?bindParm()?第二個參數只能傳變量;
//?bindValue()?第二個參數?既能傳變量也能傳值,其余再無區別;
$stmt->bindValue(':status',$status,PDO::PARAM_INT);
$stmt->execute();
//?-?4?遍歷結果集:通常用?foreach()?結構
$stmt?->bindColumn(1,$user_id,PDO::PARAM_INT);
$stmt?->bindColumn(2,$name,PDO::PARAM_STR,20);
$stmt?->bindColumn(3,$eamil,PDO::PARAM_STR,100);
$rows?=[];
while?($row=$stmt->fetch(PDO::FETCH_BOUND))?{
echo?$user_id,$eamil,$name,'
';
//?將變量轉為數組;compact傳值:傳變量名組成的字符串
$rows?[]?=?compact('user_id','name','eamil');
}
//?-?5?釋放結果集
$stmt?=?null;
//?-?6?關閉連接
$pdo?=?null;
?>
批改老師:韋小寶批改時間:2018-11-03 14:06:03
老師總結:寫的很棒!Pdo鏈接數據庫還是很重要的!繼續加油吧!看好你哦!
總結
以上是生活随笔為你收集整理的php pdo 参数绑定,PDO预处理之参数绑定和列绑定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7安装php8,centos
- 下一篇: 将php源码修改成存在注入的源码,天融信