PHP連線SQL Server資料庫

2022-01-31 23:00:42 字數 1632 閱讀 6833

服務環境:apache2.2 + php5.2 + sql server 2008 r2

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)

$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)

}

注釋: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版。

Linux C語言連線 sqlserver資料庫

記錄一下linux下使用c語言連線sqlserver的方法。連線前需要安裝freetds。參考 這個是從參考鏈結中的提取 分析一下,寫上注釋。include include include include include includeint main void else 連線資料庫 if dbus...

Linux C語言連線 sqlserver資料庫

記錄一下linux下使用c語言連線sqlserver的方法。連線前需要安裝freetds。參考 這個是從參考鏈結中的提取 分析一下,寫上注釋。include include include include include includeint main void else 連線資料庫 if dbus...

php使用ODBC連線sqlserver問題

使用odbc error 檢測資料庫連線問題 if odbc error 我遇到的問題是連線成功了,但查詢乙個資料表總是失敗,查詢其它的表報錯。但我在apache配置的環境下沒有問題,但nginx下總是不行,一直懷疑是環境的問題,實際是php版本的問題 開啟php.ini,將display erro...