PHP 5.x PDO 連結 MS SQL Server for CentOS 7

PHP

說明如何在 CentOS 7 PHP 5.x 版本,建置 PDO 連結 MS SQL Server 資料庫的環境教學。

安裝 ODBC 驅動

安裝:

yum install unixODBC

安裝 FreeTDS 驅動

FreeTDS(Tabular Data Stream,表列資料串流)可透過它讓程式(如 PHP)來存取支援 TDS 的 Sybase SQL 或 MS SQL Server 資料庫。

安裝:

yum install freetds

查詢驅動路徑:

ldconfig -p | grep libtdsodbc
        libtdsodbc.so.0 (libc6,x86-64) => /lib64/libtdsodbc.so.0

註冊 FreeTDS 驅動,新增以下設定(Driver 為上面查詢的 ODBC 驅動路徑):

vi /etc/odbcinst.ini
... 以上省略 ...
 
[FreeTDS]
Description = Freetds v 0.95
Driver = /lib64/libtdsodbc.so.0

PHP 相關套件

安裝:

yum -y install php-pdo php-odbc

重啟 Web Server:

systemctl restart httpd

確認是否安裝完成,PDO drivers 有出現 odbc 表示正常:

php -i | grep odbc
... 以上省略 ...
 
PDO drivers => mysql, odbc, sqlite, oci

PDO 連線程式

PHP 使用 PDO 連結 MS SQL Server 資料庫。

<?php
$host = '192.168.3.251';    // IP
$port = '1433';             // PORT
$dbname = 'SCS001';         // 資料庫名稱
$user = 'sa';               // 帳號
$passwd = 'passwd';         // 密碼

try {
    // Driver 指定驅動
    $dbConn = new PDO('odbc:Driver=FreeTDS;Server=' . $host . ';Port=' . $port . ';Database=' . $dbname . ';UID=' . $user . ';PWD=' . $passwd . ';clientcharset=UTF-8');
} catch (PDOException $e){
    echo $e->getMessage();
}

$stmt = $dbConn->query('SELECT * FROM FT_Employee');

$row = $stmt->fetch();
echo '<pre>';
var_dump($row);
echo '</pre>';

參考

在〈PHP 5.x PDO 連結 MS SQL Server for CentOS 7〉中有 2 則留言

    • 因為原服務是較早期開發的程式,重建環境就順便記錄下來,剛好幫到您。
      但由於我沒有使用 DB2 和 AS400 的需求,所以這部份無法幫助您了。

發表留言