運用 PDO 建立連線資料庫的物件,獨立存檔 ref_test / PDO / conn_pdo.php
<?php
$db_hostname = 'localhost'; //資料庫主機名稱
$db_username = 'root'; //登入資料庫的管理者的帳號
$db_password = 'root'; //登入密碼
$db_name = 'tsphp'; //使用的資料庫
$db_charset = 'utf8'; //設定字元編碼
//建立PDO的指定工作(組合字串)
$dsn = "mysql:host=$db_hostname;dbname=$db_name;charset=$db_charset";
//try...catch...是捕獲異常處理
//將要執行處理的工作放在try{之中}
//如果執行中發生異常時, 則跳轉到catch, 由$e收集錯誤訊息再決定輸出
try{
//使用PDO連接到MySQL資料庫,建立PDO物件($conn這個變數就是這個物件)
$conn = new PDO($dsn, $db_username, $db_password);
//當錯誤發生時會將錯誤資訊放到一個類物件裡(PDOException)
//PDO異常處理,PDO::ATTR_ERRMODE,有以下三種值的設定
//PDO::ERRMODE_SILENT: 預設模式,不主動報錯,需要以$conn->errorInfo()的形式獲取錯誤資訊
//PDO::ERRMODE_WARNING: 引發 E_WARNING 錯誤,主動報錯
//PDO::ERRMODE_EXCEPTION: 主動抛出 exceptions 異常,需要以try{}cath(){}輸出錯誤資訊。
//設定主動以警告的形式報錯
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
//如果連接錯誤,將抛出一個PDOException異常對象
catch ( PDOException $e ){
//如果連結資料庫失敗則顯示錯誤訊並停止本頁的工作
die("ERROR!!!". $e->getMessage());
}
//由於多數頁面皆需要連結到資料庫, 就需要這個檔案
//由於多數頁面都需要啟動session功能, 所以就放在這個檔案
if( !isset($_SESSION) ){ session_start(); }
//指定時區
date_default_timezone_set('Asia/Taipei');
//$conn = null; //關閉資料庫的連線
?>