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/>";
}

*/
?>


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值