2009年5月19日 星期二

在Linux環境下以PHP連結SQL Server

若在Windows環境下安裝PHP, 通常可以很輕鬆的連結SQL Server, 但在Linux環境下就需要額外安裝FreeTDS, 詳細安裝步驟可以參考這篇這篇, 我也順便再記錄一次操作步驟吧...

1) 安裝FreeTDS:
  • 先下載FreeTDS的source,
  • 編譯參數: --prefix=/usr/local/freetds --enable-msdblib
  • 完成安裝後, 修改/etc/ld.so.conf, 加入/usr/local/freetds/lib; 以ldconfig重新載入函式
2) 修改/usr/local/freetds/etc/freetds.conf:
[foo]
host = your.mssql.server.ip
port = 1433
client charset = UTF-8 # 以UTF-8編碼方式連線
tds version = 8.0
#tds version: 4.2 (適用 MS SQL Server 6.x); 7.0 (適用 7.x); 8.0 (適用 2000/2005)
3) 測試連線
  • # /usr/local/freetds/bin/tsql -S foo -U sa
  • 1> use my_db
  • 2> select * from my_table
  • 3> go
4) 重新編譯PHP
  • 新增編譯參數: --with-mssql=/usr/local/freetds

在存取SQL Server 2005時, 若遇到欄位型態為uniqueidentifier, PHP無法直接取得其欄位值, 需在SQL查詢以SELECT CONVERT(VARCHAR(36), field_name) AS 'field_name'轉換型態才可使用, 而要新增uniqueidentifier類型的欄位時, 須以SQL Server內建之NewID()函式產生唯一的GUID

沒有留言: