本功能php存取MS SQL Server
需求:
在其他的Windows系統中:
此功能是將MS的Client端工具安裝在PHP程式當中。Client端工具可由SQL Server安裝光碟或是WinNT中\winnt\system32下的ntwdblib.dll安裝到PHP Box的\winnt\system32之下;複製檔案僅有提供存取弁遄FClient工具的設定則需要完整的安裝工具。
在Unix/Linux平台中的需求:
想要在Unix/Linux平台中使用MSSQL您必須建立並安裝FreeTDS library。所有的程式碼與操作說明請參考FreeTDS 首頁:http://www.freetds.org/
註解:
在Windows中係使用微軟的DBLIB,其弁鄏b回傳一個於DBLIB中dbcolname()函式的欄位名稱。DBLIB是為了SQL Server6.0所發展而來,其最大字元識別長度為30;因此,最大的欄位長度就是30。不過在Linux中的FreeTDS就沒有這樣的問題。
軟體版本:Red Hat 9.0 Freetds 0.62.3 Apache 2.0.49 PHP 5.0.ORC3
以下執行功能linux Server連線至Windows 2000的SQL Server。
第一步:安裝FreeTDS:
1-. 下載 freetds -> www.freetds.org
2-. 執行tar -zxvf freetds-stable-tgz
3-. 進入 cd freetds-0.62.3
4-. ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld
注意: 使用SQL 2000為tdsver=8.0 ;而使用SQL7.0則為 tdsver=7.0。
5-. make
6-. make install
7-. /usr/local/freetds/bin/tsql -S <ip of the server> -U <User SQL>
注意: 預設的使用者帳號是sa 且沒有密碼。
For example: /usr/local/freetds/bin/tsql -S 198.168.100.2 -U sa
8-. 在 freetds.conf 下新增下列文字( 路徑為/usr/local/freetds/etc )
[TDS]
host = <ip of the Server with Sql>
port = 1433
tds version = 8.0
注意: 使用SQL 2000為tdsver=8.0 ;而使用SQL7.0則為 tdsver=7.0。
9-. 在 /etc/ld.so.conf 之下新增下述路徑:
/usr/local/freetds/lib
安裝 APACHE
1-. 下載apache www.apache.org
2-. tar -zxvf httpd-2.0.49.tar.gz
3-. cd httpd-2.0.49
4-. ./configure --prefix=/etc/httpd --enable-so
5-. make
6-. make install
7-. 設定檔案 -> httpd.conf ( /etc/httpd/conf/httpd.conf )
8-. 重載 apache: /etc/httpd/bin/apachectl start
/etc/httpd/bin/apachectl stop
安裝 PHP
1-. 於(www.php.net)下載PHP
2-. tar -zxvf php-5.0-ORC3.tar.gz
3-. cd php-5.0-ORC3
4-. ./configure --with-apxs2=/etc/httpd/bin/apxs --enable-versioning --with-mssql=/usr/local/freetds --disable-libxml
5-. make
6-. make install
7-. cp php.ini-DIST /usr/local/lib
8-. 在Apache設定檔 /etc/httpd/conf/httpd.conf 中新增下列文字:
AddType application/x-httpd-php .php
測試網頁如下:
代碼: 選擇全部
<html>
<body>
<?php
$con = mssql_connect ("<ip of the server SQL>", "sa", "");
mssql_select_db ("<Data Base>", $con);
$sql= "SELECT * FROM <Table>";
$rs= mssql_query ($sql, $con);
echo "The field number one is: ";
echo mssql_result ($rs, 0, 0);
mssql_close ($con);
?>
</body>
</html>