PHP 5.x PDO 連結 MS SQL Server for CentOS 7
安裝 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>';
參考
本著作係採用創用 CC 姓名標示-相同方式分享 3.0 台灣 授權條款授權.
感謝腳印大的文章,受益非淺,你列的作法很順暢,有些網站文章都東缺一塊西缺一塊。
另外想請問是否有機會用PHP+ODBC連DB2或是AS400??
早期(apache1.3+php4)小弟用的方式是要安裝IBM的客戶端,還得重新編譯apache+php,不知王兄有沒有接觸過比較方便且實用的方式,可以連DB2??
https://stackoom.com/question/LzUZ/PHP-Linux到AS-db
因為原服務是較早期開發的程式,重建環境就順便記錄下來,剛好幫到您。
但由於我沒有使用 DB2 和 AS400 的需求,所以這部份無法幫助您了。