||  網站導覽  ||  留言版
 
  站長 x 管理人
 
  文章分類
    JAVA
    Database資料庫
    應用程式
    文書處理
    normal一般設定
    Web-design網頁設計
       JSP
       不分類
       .net framework
       asp
       php
    Virtual Machine虛擬機器
    MIS網管
    media多媒體
    未分類
 
 
 
 
「實作」php+freetds連線mssql2008 R2
 
 
 
 

最近接到一個案子要用php+mssql2008開發,
php在linux主機上,mssql2008在windows主機,
於是連線到資料庫的方法必須要能在linux上跑
同時開發開環境是在windows,所以windows也要能跑
再加上網頁用utf-8編碼,連到mssql2008會送亂碼
於是在試過幾個方案後,覺得這個方式比較適合,
整理一下,並做個筆記

[Windows]
win7+appserv2.5.10
winxp sp3+appserv2.5.10


下載並copy php_dblib.dll(這裡用的是TS版)至c:\windows\system32 or php的ext目錄下
php_dblib下載頁面

注意:這個下載頁只有提供php5.2.x (vc6) 和php5.3.x(vc9)的TS和NTS版




修改php.ini
把extension=php_mssql.dll註解掉
變成;extension=php_mssql.dll

加上一行
extension=php_dblib.dll


[Linux]
Centos5.x
#yum install  php-mssql freetds
(yum預設的extras套件庫)

Centos6.x
#yum install  php-mssql freetds
(使用epel套件庫)

 

完成之後,重啟apache

寫一隻phpinfo的程式

成功的話,可以找到「mssql」的項目
Library version 是 FreeTDS
([Windows]沒把php_mssql.dll註解掉,這邊就變成7.0了)

==================================================
編輯freetds.conf

Windows
C:\freetds.conf  自行建立

Linux
#vi /etc/freetds.conf
在結尾加入以下 內容
[test]
host = localhost
port = 1433
tds version = 7.0
client charset = UTF-8

註:
比較新版的freetds設定需在等號前加上一個空白
保險起見,比照範例,在等號前後最好各加上一個空白


說明
[test] 中括號裡面的test是指程式連線用的名稱
host = localhost sql server的ip/主機名稱
port = 1433 sql server連接埠,1433為預設值
tds version = 7.0 請參考Choosing a TDS protocol version
client charset = UTF-8 在此指定編碼為UTF-8

==================================================
寫一隻demo.php
<?php
$myServer = "test"; //FreeTDS 內的 SQL Server 區段設定名稱
$myUser = "sa"; //用戶名稱
$myPass = "123456"; //用戶密碼
$myDB = "mydb";  //SQL Database 名稱

$s = mssql_connect($myServer, $myUser, $myPass)
or die("Couldn't connect to SQL Server on $myServer");

$d = @mssql_select_db($myDB, $s)
or die("Couldn't open database $myDB");

$query = "select name from dbo.test ";

$result = mssql_query($query);

$numRows = mssql_num_rows($result);//取得row數
echo "共有".$numRows."筆<br>";

while($row = mssql_fetch_array($result))
{
echo  $row["name"] . "<br>";
}
?>

以上參考自:
Using FreeTDS on Unix
Installing_MSSQL_for_PHP
PHP連MSSQL
Choosing a TDS protocol version

 
 
 
 
Copyright © 2012 NBOX. All Rights Reserved.