首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

PHP 使用 PDO_DBLIB 連線 SQL Server 完整安裝與測試指南

     編輯:關於SqlServer

前言

PDO (PHP Data Objects) 提供統一的資料庫存取介面。連線 Microsoft SQL Server 需使用 PDO_DBLIB 驅動(基於 FreeTDS)。本文記錄在 Linux 環境下編譯安裝並驗證連線的完整步驟。

環境假設

  • OS: CentOS / RHEL 6/7 (64-bit)
  • PHP: 5.6+ (已安裝 pear、php-devel)
  • 已安裝 FreeTDS 庫:yum install freetds-devel

步驟 1:下載 PDO_DBLIB 原始碼

wget https://pecl.php.net/get/PDO_DBLIB
# 若連結失效,可至 https://pecl.php.net/package/PDO_DBLIB 下載最新 tgz

步驟 2:透過 PEAR 安裝

/usr/bin/pear install PDO_DBLIB-1.0.tgz
# 成功後會在擴充模組目錄產生 pdo_dblib.so
# 64位系統通常在 /usr/lib64/php/modules/
# 32位系統在 /usr/lib/php/modules/

步驟 3:啟用擴充模組

echo "extension=pdo_dblib.so" > /etc/php.d/pdo_dblib.ini
# 或直接編輯 php.ini 加入上述行

步驟 4:重啟 Web 服務

service httpd restart
# 或 systemctl restart httpd (CentOS 7+)
# 或 systemctl restart php-fpm (若使用 PHP-FPM)

步驟 5:驗證安裝

php -m | grep pdo_dblib
# 應輸出 pdo_dblib

步驟 6:PHP 連線測試程式

<?php
try {
    $dsn = "dblib:host=192.168.1.100;dbname=TestDB;charset=UTF-8";
    $db = new PDO($dsn, "sa", "YourStrongPassword");
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = "SELECT COUNT(*) AS cnt FROM testTable";
    $stmt = $db->query($sql);
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        print_r($row);
    }
    $stmt = null;
    $db = null;
    echo "連線成功!";
} catch (PDOException $e) {
    die("連線失敗: " . $e->getMessage());
}
?>

常見問題排查

現象可能原因解決方向
could not find driverpdo_dblib.so 未載入確認 php.ini 載入順序、重啟 php-fpm/httpd
SQLSTATE[HY000] Adaptive Server connection failedFreeTDS 設定或網路不通檢查 /etc/freetds/freetds.conf 伺服器定義、防火牆 1433 埠
字元集亂碼DSN 缺少 charset 參數DSN 加入 ;charset=UTF-8 或 ;charset=CP936

進階提示

  • 生產環境建議使用 sqlsrv / pdo_sqlsrv (Microsoft 官方驅動),效能與相容性優於 FreeTDS 架構。
  • 連線字串可加入 ;port=1433 明確指定埠號。
  • 啟用連線池:PDO::ATTR_PERSISTENT => true (視負載評估)。

結語

PDO_DBLIB 是 Linux 平台連線 SQL Server 的經典方案,安裝流程固定。掌握編譯安裝與 DSN 設定細節,能快速落地 PHP 應用與 SQL Server 的整合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved