本文實例講述了PHP資料物件PDO操作技巧。分享給大家供大家參考,具體如下:
PHP 資料物件 (PDO) 擴充為PHP存取資料庫定義了一個輕量級的一致介面。
<?php try { $dsn = "mysql:host=localhost; port=3306; dbname=wsq_hotel; charset=utf-8"; $user = 'root'; $psw ='root'; $pdo = new PDO($dsn,$user,$psw); $sql = 'select goods_prices from wsq_goods_info where goods_id=2'; // $sql = "show database"; $res = $pdo->query($sql) or var_dump($pdo->errorInfo()); // var_dump($res); $mon = $res->fetch(PDO::FETCH_ASSOC); echo $mon['goods_price']; } catch (PDOException $e) { echo $e->getMessage(); } ?>
PDO操作事務
//开启事务 beginTransacition() //回滚 rollback() //提交 commit() //判断是否处于事务之中 inTransaction()
傳回最後插入行的ID
PDO::lastInsertID()
exec()執行
與query()相比,exec()傳回的是受影響行數
rrrereee指的是預先編譯sql的結構的一種執行sql的語法
如果執行多條結構相同的sql,編譯的中間結果(語法樹)應該也是一致的,因此可以將相同的結構,統一編譯,每次使用不同的數據執行即可。
編譯統一的結構
$sql = "insert into table values('$val')"; if(false===$pdo->exec($sql)){ echo '执行失败'; }
綁定資料到中間編譯結果
$pdoStatement = $pdo->prepare(sql结构)
執行
$pdoStatement ->bindValue()
預編譯能更好地防止sql注入,是因為預編譯時候不需要使用者的資料參與,因此編譯時結構固定,所以資料不影響sql結構。
$pdo->query()與$pdo->execute()如果需要防止sql注入,可以使用$pdo->quote()(其作用是先轉義後加引號)
PDOstatement常用方法:
errorInfo()
errorCode()fetchColumn()
fetch()
fetchAll()
rowCount()
closeCursor()
大家PHP程式設計有幫助。