连接本地sql server 2005:
步骤:
1. 首先按通常做法配置好PHP5连接MS SQL Server
2. 下载正确版本的 ntwdblib.dll (2000.80.194.0),地址: http://webzila.com/dll/1/ntwdblib.zip(这步很重要)
3. 覆盖 apache2.2.6\bin\ntwdblib.dll
4. 覆盖 php5.2.5\ntwdblib.dll
5. 配置php
打开php.in将
extension=php_mssql.dll的注释符号去掉。
打开php.in将mssql.secure_connection = Off改为on
将php_mssql.dll拷贝到php.in中extension_dir
指定的目录或者系统system32目录下。(php_mssql.dll在php的压缩安装包中有)
6. 运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议
Protocols
7. 允许命名管道 "named pipes" 和 "tcp/ip"
8. 右键点击 "tcp/ip",打开属性 Properties 标签 "IP addresses"
9. 在 TCP 动态端口 "TCP Dynamic Ports" 填入 1433
10. 重启 SQL Server、Apache和PHP
使用以下方式连接MS SQL Server 2005:
mssql_connect('localhost', USERNAME, PASSWORD);
连接远程sql server 2005:
下面找摘抄别的人,请谅解,必须有用才复制的
◆1.数据库引擎没有启动。有两种启动方式:
(1)开始->程序->Microsoft SQL Server
2005->SQL Server
2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database
Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;
(2) 可打开:开始->程序->Microsoft SQL
Server 2005->配置工具->SQL Server
Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER)
,并单击工具栏中的"启动服务"按钮把服务状态改为启动;
使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server
2005配置管理器"中的SQL Server
2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.
◆2.是否已经允许远程连接。这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、启用SQL
Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows
防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式:
在SQLServer 实例上启用远程连接
◆1.指向“开始->程序->Microsoft SQL Server
2005->配置工具->SQL Server 外围应用配置器”
◆2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
◆3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”,
再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息:
“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回
◆4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止,
然后单击“启动”,重新启动MSSQLSERVER 服务。
启用SQLServer 浏览器服务
◆1.指向“开始->程序->Microsoft SQL Server
2005->配置工具->SQL Server 外围应用配置器”
◆2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
◆3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”,
再单击“启动”,单击“确定”按钮返回
在Windows 防火墙中为“SQL Server 2005”创建例外
◆1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
◆2.在“添加程序窗口”中单击“浏览”
◆3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\
MSSQL.1 \MSSQL\Binn\sqlservr.exe”, 单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1
是占位符,对应数据库实例ID。
◆4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。
在Windows 防火墙中为“SQLBrowser”创建例外
◆1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
◆2.在“添加程序窗口”中单击“浏览”
◆3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL
Server\90\Shared\sqlbrowser.exe”, 单击“确定”返回
注意 :路径可能会根据 SQL Server 2005 安装不同而不同。在使用.NET开发进行时,会遇到使用连接字符串连接SQL
Server 2005数据库使用机器名称和localhost都能连接,但是使用IP地址却不能连接的问题,解决的办法是在SQL
Server实例上启用本地和远程连接,并且在选择协议的时候使用TCP/IP和命名管道服务即可解决。
上面是对服务器的配置,我遇到的问题是配置之后还是只能连接本地的sql server不能连接远程的
我之前忽悠了我前面说的很重要的那一步,弄了半天还是不行,把那个替换掉之后,如果你可以正常连接那就没有问题,不过我的报了如下错误:Warning:
mssql_connect() [function.mssql-connect]: message: 用户 'NT
AUTHORITY\ANONYMOUS LOGON' 登录失败。 (severity 14)
这个很好解决,是php.ini中的配置问题,修改方法是把php.ini中的mssql.secure_connection =
On 改为 mssql.secure_connection =
Off,但是有人说这样会存在安全问题,我不清楚究竟是怎样,反正修改之后重启下apache,就可以正常连接数据库和读取数据了