摘要
1.下載微軟提供的dll
下載地址:http://www.microsoft.com/en-us/download/details.aspx?id=20098
php5.4需下載 SQLSRV30.EXE,這個exe是一個自解壓文件,下載后雙擊選路徑解壓會得到一堆dll和說明文件。
2、將對應自己php版本的dll文件copy到php ext目錄下
ts是指線程安全(ThreadSafe),nts是指線程不安全,得根據安裝的php版本來選擇,如果不確定,就分別嘗試一下;
我用的php5.4,就將php_sqlsrv_54_ts.dll復制到ext目錄下,
我用的php5.4,就將php_pdo_sqlsrv_54_ts.dll復制到ext目錄下,
例如:D:\Program Files\PHP 5.4\ext
3、修改php.ini文件
增加二行:extension=php_pdo_sqlsrv_54_ts.dll
extension=php_sqlsrv_54_ts.dll
修改一行 : mssql.secure_connection = Off 改為on
4、重啟apache
5、配置MS SQL Server2005
a、打開 SQL Server 配置管理器:SQL Server Configuration Manager,打開協議;
b、啟用“Named Pipes”和“TCP/IP”,默認是已禁用的;
c、右鍵點擊“TCP/IP”,選擇“屬性”,選擇“IP地址”,在”ALLIP“下的“TCP動態端口”后填寫1433;
d、重啟SQL Server。
備注:記得開啟sa登錄。
6、安裝Microsoft SQL Server 2012 Native Client.msi
根據自己系統在PHP服務器所在機器安裝Microsoft SQL Server 2012 Native Client.msi,分X64和X86的。
下載地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=29065
此工具不支持XP系統哦,所以XP去用PHP5.3吧~
另外這個是安裝在php環境的的服務器下面 PS:不是獨立數據庫服務器的請自動忽略。
7、php數據庫代碼
<?php /*連接數據庫,5.4的函數不再是mssql_connect了:*/ $conInfo=array("Database"=>"att2008", "UID"=>"att2008", "PWD"=>"att2008"); $conn=sqlsrv_connect("127.0.0.1", $conInfo); /*判斷連接成功與否:*/ if( $conn == false ) { die( print_r( sqlsrv_errors(), true)); } else { echo("yes<br>"); } $table_name = "USERINFO"; /*如果你牛叉的數據庫表名是中文,記得加上這句:*/ //$table_name = iconv("UTF-8", "GB2312", "牛叉的中文表名"); /*query語句:*/ $rs=sqlsrv_query($conn, "select * from ".$table_name); if($rs == false) { echo("false<br>"); } else { while($row = sqlsrv_fetch_array($rs)) { print_r($row); } sqlsrv_free_stmt($rs); sqlsrv_close($conn); } ?>
8,至此,網上教程復制完畢,但是該方法不支持XP系統!(我使用的是phpstudy,非常便捷的一體式多合一服務)
但是該方法中開啟了mssql.php,於是使用以下代碼可以在XP中連接sql2008
<?php $server ="LPP-20140312390\s2008"; //服務器IP地址,如果是本地,可以寫成localhost,本例是多個實例 $uid ="sa"; //用戶名 $pwd ="sql2008"; //密碼 $database ="test"; //數據庫名稱 //進行數據庫連接 $conn =mssql_connect($server,$uid,$pwd) or die ("connect failed"); mssql_select_db($database,$conn); //執行查詢語句 $query ="select * from demo"; $row =mssql_query($query); //打印輸出查詢結果 while($list=mssql_fetch_array($row)) { print_r($list); echo "<br>"; } //PDO連接不成功,沒有微軟的庫,2012庫不在支持XP // $conn = new PDO( "sqlsrv:Server=(LPP-20140312390\s2008);Database=test", "sa", "sql2008"); // $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); // $query = 'select * from demo'; // $stmt = $conn->query( $query ); // while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){ // print_r( $row ); // }
9,xp系統中連接SqlServer2008
9.1同樣下載http://www.microsoft.com/en-us/download/details.aspx?id=20098
找到sqlsrv20,這里面是支持xp的DLL,支持范圍包括5.3,5.2,不支持5.4,其中nt是線程安全,v6v9意思是apache是哪種語言編寫的,是c++9還是c++6,這個安裝的時候提示錯誤 就更改一個
下載Microsoft SQL Server 2008 Native Client.msi,這個是必須的
9.2重啟服務器
測試代碼
<?php //PDO連接方式 // $conn = new PDO( "sqlsrv:Server=LPP-20140312390\S2008;Database=CDTXYYBJP", "sa", "sql2008"); try { $conn = new PDO( "sqlsrv:Server=LPP-20140312390\S2008;Database=CDTXYYBJP", NULL, NULL); $conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); } catch( PDOException $e ) { die( "Error connecting to SQL Server" ); } echo "Connected to SQL Server\n"; $query = 'Select * From sysobjects '; $stmt = $conn->query( $query ); while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){ p( $row ); } // /* Specify the server and connection string attributes. */ // $serverName = "LPP-20140312390\s2008"; // $connectionInfo = array( "Database"=>"CDTXYYBJP"); // /* Connect using Windows Authentication. */ // $conn = sqlsrv_connect( $serverName, $connectionInfo); // if( $conn === false ) // { // echo "Unable to connect.</br>"; // die( print_r( sqlsrv_errors(), true)); // } // Query SQL Server for the login of the user accessing the // database. // $tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())"; // $stmt = sqlsrv_query( $conn, $tsql); // if( $stmt === false ) // { // echo "Error in executing query.</br>"; // die( print_r( sqlsrv_errors(), true)); // } // /* Retrieve and display the results of the query. */ // $row = sqlsrv_fetch_array($stmt); // echo "User login: ".$row[0]."</br>"; // /* Free statement and connection resources. */ // sqlsrv_free_stmt( $stmt); // sqlsrv_close( $conn);