<?php/* * PDO 資料庫的操作 * */$dns = "mysql:dbname=bbs;host=localhost";$user ="root";$password="";$opt = array(PDO::ATTR_PERSISTENT=>true);$pdo = new PDO($dns,$user,$password,$opt);/* * getAttribute()查看資料庫連接屬性 * */var_dump("是否關閉自動認可功能:".$pdo->getAttribute(PDO::ATTR_AUTOCOMMIT));var_dump("當家PDO錯誤處理的模式:".$pdo->getAttribute(PDO::ATTR_ERRMODE));var_dump("表欄位字元的大小寫轉換:".$pdo->getAttribute(PDO::ATTR_CASE));var_dump("與串連狀態相關的特有資訊:".$pdo->getAttribute(PDO::ATTR_CONNECTION_STATUS));var_dump("Null 字元串轉換為SQL的NULL:".$pdo->getAttribute(PDO::ATTR_ORACLE_NULLS));var_dump("應用程式提前擷取資料大小:".$pdo->getAttribute(PDO::ATTR_PERSISTENT));var_dump("與資料庫特有的伺服器資訊:".$pdo->getAttribute(PDO::ATTR_SERVER_INFO));var_dump("資料庫伺服器版本號碼資訊:".$pdo->getAttribute(PDO::ATTR_SERVER_VERSION));var_dump("資料庫用戶端版本號碼資訊:".$pdo->getAttribute(PDO::ATTR_CLIENT_VERSION));/* * 兩種執行方法 * exec 返回受影響的行數,用於 insert delete update * query 用於查詢,返回一個PDOstatement,可用於對每條資訊的操作 * *//* * $sql = "delete from news where id=16";echo $pdo ->exec($sql);--------------------------------------------------quote 為SQL語句加轉義 $sql=$pdo->quote("delete from news where id ='1'"); echo $sql; // 輸出:'delete from news where id =\'1\''--------------------------------------------------lastInsertId$sql = "insert into news values('','boy','boy')";$pdo -> exec($sql);echo "插入的記錄的ID:".$pdo->lastInsertId();//得到最後一次插入記錄的ID--------------------------------------------------其中裡面一個最重要的方法就是 prepare($sql),返回一個PDOstatement,同樣,還有一個返回PDOstatement 的方法是 query()用於查詢資料prepare($sql) 是對SQL 陳述式進行預先處理,返回一個一個 PDOstatement對象,裡麵包含了很多有用的方法下一節再記錄PDOstatement屬性與依法--------------------------------------------------下面是用於事務的操作 * * */$sql1 = "delete from news where id =21";$sql2 = "delete from news where id =22";$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);try{$pdo->beginTransaction();$pdo->exec($sql1);$pdo->exec($sql2);}catch(Exception $ex){$pdo->rollBack();echo "資料庫操作失敗".$ex->getMessage();}?>