* PDO預處理主要使用PDOStatement物件
* 該物件是透過: $pdo->prepare()方法建立
* 讀寫作業都可以透過:$pdoStmt- >execute()方法進行
* 預處理SQL語句中的佔位符號除可以使用?號之外,還可以使用命名參數,例如:name:email...
* 以下新增資料為例進行示範,共分6步驟:
* 1.連接資料庫,建立PDO物件
* 2.準備預處理SQL語句,佔位符使用命名參數格式:
* 3.建立PDO預處理物件: PDOStatement的實例
* 4. 綁定參數到SQL語句物件,預處理物件
* 5. 執行新增操作(PDO中,讀寫都用execute())
* 6.銷毀PDO物件(可選)
//1.連接資料庫,建立PDO物件
$pdo = new PDO('mysql:dbname=php', 'root', 'root');
//2.準備預處理SQL語句,佔位符使用命名參數格式:
$sql = "INSERT `user` SET `user_name`=:name, `email`=:email,`password`=sha1(:password)";
//3.建立PDO預處理物件
$stmt = $pdo->prepare($sql);
/ /檢視產生的SQL語句,可以複製到SQL指令視窗中運作,確保語句正確性
echo $stmt->queryString;exit();
//4. 綁定參數到預處理物件
$data = ['name'=>'杨过','email'=>'yg@php.cn', 'password'=>'123']; $stmt->bindParam(':name',$data['name'],PDO::PARAM_STR); $stmt->bindParam(':email',$data['email'],PDO::PARAM_STR); $stmt->bindParam(':password',$data['password'],PDO::PARAM_STR);
//5.執行新增動作
if($stmt->execute()){ //rowCount():返回上一个SQL语句影响的行数 echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>'; } else { echo '<h3>添加失败</h3>'; print_r($stmt->errorInfo()); exit(); }
//6.銷毀PDO物件
$pdo = null;