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

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


安裝 ODBC 驅動

安裝:

[root@localhost ~]# yum install unixODBC

安裝 FreeTDS 驅動

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

安裝:

[root@localhost ~]# yum install freetds

查詢驅動路徑:

[root@localhost ~]# ldconfig -p | grep libtdsodbc
        libtdsodbc.so.0 (libc6,x86-64) => /lib64/libtdsodbc.so.0

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

[root@localhost ~]# vi /etc/odbcinst.ini
... 以上省略 ...

[FreeTDS]
Description = Freetds v 0.95
Driver = /lib64/libtdsodbc.so.0

PHP 相關套件

安裝:

[root@localhost ~]# yum -y install php-pdo php-odbc

重啟 Web Server:

[root@localhost ~]# systemctl restart httpd

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

[root@localhost ~]# 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>';


發表迴響