WEB ◆ TS Library ◆ 熱衷分享 ◆ 享受教學相長 ◆ 無形的網絡擁有熱情溫度的傳遞

2-10. 學習 PDO 方法連接資料庫

運用 PDO 建立連線資料庫的物件,獨立存檔 ref_test / PDO / mb_conn.php

<?php
$db_hostname = 'localhost';        //資料庫主機名稱
$db_username = 'root';             //登入資料庫的管理者的帳號
$db_password = 'root';             //登入密碼
$db_name     = 'tsphp';            //使用的資料庫
$db_charset  = 'utf8';             //設定字元編碼

// 連線資料庫
/**
 * 運用 try{...}catch(){} 物件導向的捕捉異常處理
 * 運用 try 處理要執行的工作
 * 如果發生異常則跳轉到 catch 會捕捉到錯誤資訊, 存放在變數$e, 並停止 try 的工作
 */

try{
  // 設定要進入的資料庫類型:主機;資料庫名稱;編碼
  $dsn = "mysql:host=$db_hostname;dbname=$db_name;charset=$db_charset";
  
  // 使用PDO連接到MySQL資料庫,建立PDO物件($conn這個變數就是這個物件)
  // 創建出PDO物件( 要進入的資料庫, 帳號, 密碼 )
  $conn = new PDO($dsn, $db_username, $db_password);

  /**
   * 當錯誤發生時會將錯誤資訊放到一個類物件裡(PDOException)以$e變數存放
   * 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; //關閉資料庫的連線
?>

 

 

go TOP