php 連接 mssql sql2008


摘要

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目錄下,

我用的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);

 


免責聲明!

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



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