Win7 下PHP連接遠端Sql Server R2

參考:http://www.ppkj.net/2011/06/09/php-%E8%BF%9E%E6%8E%A5sqlserver200520082008r2/

        http://hi.baidu.com/xiaoma/item/82ad2ece43b83a3599b498cb

第一種方法使用php默認自帶的php-mssql.dll擴展,這種只需要開啓php.ini,去除“;”即可

;extension=php-mssql.dll

這種方式需要ntwdblib.dll放在c:\windows(網上有些資料說是放在System32下,試了一下好像不行)以及php安裝根目錄

如果無法安裝,查看以下原因:

1.擴展是否已經加載,用 phpinfo()查看 php-mssql;

2.本機是否已經安裝sqlserver2000-2008R2

3.有時候ntwdblib.dll(比如2000.2.8)的版本並不支持更高版本的sql server(大於2000),因此如果你的ntwdblib.dll版本過低,可以下載本站下載ntwdblib.dll,下載後在php安裝目錄和c:\windows下各自放一份

4.查看是否當前賬戶名和主機名一樣了,改成不一樣的,我的電腦/計算機 右鍵屬性 —重命名計算機

5.開啓sqlserver的遠程連接

———————————–下面是開啓sqlserver遠程 2008R2下通過 其他可能會有所不同——————————————-

接下來要設置sqlserver允許遠程連接,打開SQL Server Management Studio ,登陸後 ,在左側 對象資源管理器裏面,選擇sqlserver實例對象(第一個),右鍵屬性

1.安全性選項卡 裏面勾選sqlserver和windows身份驗證

2.連接選項卡 勾選允許遠程連接

然後打開SQL Server 配置管理器

1.–>SQL Server網絡配置裏面,SQLEXPRESS協議(可能是其他名),右側NamedPipes和TCP/IP都開啓,編輯TCP/IP,選項卡里面–>ip地址->IPALL –>tcp動態端口 寫入1433

2.SQL Native Client配置–>客戶端協議同樣啓用上面的兩個協議即可。

然後在SQL Server Management Studio重啓sqlserver即可,注意如果不是本地連接需要開啓防火牆sqlserver鏈接 一般端口是1433

 

————————————-下面的不推薦用—–ppkj.net————————————

另一種方法微軟自己提供了php連接mssql的dll擴展, 但是函數接口都和php自帶擴展不一樣,需要重新學習

微軟官方下載地址

以下在windows7 SQLServer2008 R2 x64環境 php5.2.16ts apache2.2下通過

先查看php的編譯信息

<?php phpinfo();?>

查找 Thread Safety  如果是enabled 則使用對應版本號的ts版本,其他的則使用nts版本

安裝後重啓web服務器

如果phpinfo裏面有sqlsrv擴展,則成功

 

注意:

1.ntwdblib.dll 版本爲 2000.2.8.0 是 對應 SqlServer2000
2.ntwdblib.dll 版本爲 2000.80.194.0 是 對應 SqlServer2005
3.ntwdblib.dll 版本爲 2000.80.2039 是 對應 SqlServer2008

 

連接遠端Sql Server數據庫 遇到的bug(NT AUTHORITY\ANONYMOUS LOGON)

解決方法:

 打開window下目錄的:php.ini文件

修改mssql.secure_connection = off

 

<?php
//$conn=mssql_connect("QADB\SQL2005","sa","abc@123");   //建立與SQL Server數據庫的連接
//mssql_select_db("db_online",$conn);   //選擇數據庫
/*
//com連接 不行啊
$conn=new Com("ADODB.Connection");
$connstr="provider=sqloledb;datasource=QADB\SQL2005;uid=sa;pwd=abc@123;database=db_online;";
$conn->Open($connstr);
$rs=new Com("ADODB.Recordset");

$rs->open("select * from tb_admin",$conn,1,1);
$count=$rs->RecordCount;
echo "$count";

//ODBDC連接
$dbhost="QADB\SQL2005";
$dbname="db_online";
$dbuser="sa";
$dbpass="abc@123";
$conn=odbc_connect("Driver={SQL Server};Server=$dbhost;Database=$dbname","$dbuser","$dbpass");

$sql="select * from tb_admin";
$exec=odbc_exec($conn,$sql);
while($row=(odbc_fetch_array($exec)))
{
    echo $row["name"]."<br/>";
}

*/
?>


 

 

發佈了87 篇原創文章 · 獲贊 6 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章