標籤:
摘要
sql server 2008
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目錄下,
例如: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);
php 串連 mssql sql2008