PHP連接SQL Server數據庫


服務環境:apache2.2 + PHP5.2 + Sql Server 2008 R2


一、所需庫和工具
1、SQLSRV20.EXE (php5.2版本對應的的Sql Server擴展庫)
注釋:php5.2版本所需要的Sql Server擴展庫
下載地址:http://pan.baidu.com/s/1qWmDIji
SQLSRV30.EXE (php5.3以上版本對應的的Sql Server擴展庫)
下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098

2、sqlncli.msi (32位操作系統 Microsoft SQL Server Native Client)
下載地址:http://pan.baidu.com/s/1eQ7qRxK
sqlncli64.msi (64位操作系統 Microsoft SQL Server Native Client)
下載地址:http://pan.baidu.com/s/1gdorZ3t

二、安裝
1、解壓SQLSRV20.EXE
雙擊打開SQLSRV20.EXE,將文件解壓到 php\ext 文件夾下
2、安裝sqlncli.msi
注釋:安裝系統對應的版本

三、配置
1、修改 php.ini 文件
  1) mssql.secure_connection = Off 將Off改成On (mssql.secure_connection = On)
  2) 去掉 extension=php_mssql.dll 前面的";"
  3) 去掉 extension=php_pdo_mssql.dll 前面的";"
  4) 添加擴展庫
  extension=php_sqlsrv_52_ts_vc6.dll
  extension=php_pdo_sqlsrv_52_nts_vc6.dll
  extension=php_pdo_sqlsrv_53_ts.dll
  extension=php_pdo_sqlsrv_52_ts_vc6.dll
注釋:ts和nts 、VC6和VC9的區別

四、測試環境
 1、通過phpinfo(); 查看是否有sqlsrv 和 pdo_sqlsrv

五、連接數據庫
SQL Server常用的有兩種認證方式,一種是本地系統賬戶認證(Windows Authentication ),一種是使用用戶名和密碼(SQL Server Authentication ),第二種認證方式必須啟用SQL Server的混合模式。

    1.Windows Authentication連接部分代碼段:
		$serverName = "localhost"; //數據庫服務器地址
		$connectionInfo = array("Database"=>'Databasename',"ConnectionPooling"=>false);
		$conn = sqlsrv_connect( $serverName, $connectionInfo);
	
	2、	SQL Server Authentication連接部分代碼段:
		$serverName = "localhost"; //數據庫服務器地址
		$uid = "sa"; //數據庫用戶名
		$pwd = "pldsec"; //數據庫密碼
		$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>'databasename');
		$conn = sqlsrv_connect( $serverName, $connectionInfo);
	
	if( $conn == false){
		echo "連接數據庫失敗!";
		die( print_r( sqlsrv_errors(), true));
	}
	$sql = "select * from Group3";
	$query = sqlsrv_query( $conn, $sql , array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
	$num_rows = sqlsrv_num_rows($query);
	if($num_rows > 0){
		while ($row = sqlsrv_fetch_array($query)){
			echo $row['aaaa'];
		}
	}
	

注釋:
1. VC6與VC9的區別:
  VC6版本是使用Visual Studio 6編譯器編譯的,如果你的PHP是用Apache來架設的,那你就選擇VC6版本。
  VC9版本是使用Visual Studio 2008編譯器編譯的,如果你的PHP是用IIS來架設的,那你就選擇 VC9版本。
  VC9版本是針對IIS服務器的版本,沒有對APACHE的支持,而VC6版本對IIS和apache都提供了支持

2.Ts與nts的區別:
    Windows版的PHP從版本5.2.1開始有Thread Safe和NoneThread Safe之分。
先從字面意思上理解,Thread Safe是線程安全,執行時會進行線程(Thread)安全檢查,以防止有新要求就啟動新線程的CGI執行方式而耗盡系統資源。Non Thread Safe是非線程安全,在執行時不進行線程(Thread)安全檢查。

3.PHP的兩種執行方式:ISAPI和FastCGI。
    ISAPI執行方式是以DLL動態庫的形式使用,可以在被用戶請求后執行,在處理完一個用戶請求后不會馬上消失,所以需要進行線程安全檢查,這樣來提高程序的執行效率,所以如果是以ISAPI來執行PHP,建議選擇ThreadSafe版本;
而FastCGI執行方式是以單一線程來執行操作,所以不需要進行線程的安全檢查,除去線程安全檢查的防護反而可以提高執行效率,所以,如果是以FastCGI來執行PHP,建議選擇NonThread Safe版本。

通過phpinfo(); 查看其中的 Thread Safety 項,這個項目就是查看是否是線程安全,如果是:enabled,一般來說應該是ts版,否則是nts版。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM