一、Windows下PHP连接SQLServer 2005

设定:安装的Windows操作系统(Win7 或XP均可。其它系统暂未測试),在C盘下;PHP的相关文件位于c:/PHP以下,其配置文件php.ini位于C:\Windows以下。 



连接前配置系统: 



1、检查文件 php\ntwdblib.dll, 默认PHP的安装文件夹以下有一个,不能连接再替换。

下载正确版本号的 ntwdblib.dll (2000.80.194.0)

2.配置php 

           a、打开php.in将extension=php_mssql.dll的凝视符号去掉。 

           b、打开php.in将mssql.secure_connection = Off改为on。 

           c、将php_mssql.dll复制到php.in中extension_dir 指定的文件夹或者系统system32文件夹下,  位于/PHP/ext。

以上步骤完毕后须要重新启动apache。 

注意:实际使用中发现 假设通过php压缩文件手工安装php到iis下。必须重新启动机器而不不过iis。 



3.配置sqlserver 

           a. 执行 SQL Server 配置管理器:SQL Server Configuration Manager。打开协议 Protocols 

           b. 同意命名管道 "named pipes" 和 "tcp/ip" 

           c. 右键点击 "tcp/ip",打开属性 Properties 标签 "IP 地址" 

           d. 在 TCP 动态port "TCP Dynamic Ports" 填入 1433。注意分配正确的IP地址。 

           e. 重新启动 SQL Server 



4.使用下面方式连接MS SQL Server 2005: 

代码例如以下,另存为test.php: 



< ?php 

//链接数据库 

$conn=mssql_connect('localhost','sa','123456'); 

mssql_select_db('gu_dde',$conn); 

//query语句 

$Query="select * from dde_top"; 

$AdminResult=mssql_query($Query); 

//输出结果 

$Num=mssql_num_rows($AdminResult); 

for($i=0;$i 



输入http://127.0.0.1/test.php进行訪问: 





5.FAQ常见问题: 

1报错: 

Fatal error: Call to undefined function mssql_connect() 



解决: 

使用MSSQL_系列函数 

要使用这两种都须要在php.ini进行设定: 

        (1)同意 DCOM,须要将php.ini中的 ;com.allow_dcom=TRUE前的分号";"去掉。 

        (2)使用MSSQL扩展。须要php.ini中的 ;extension=php_mssql.dll前的分号";"去掉。

(关键) 

        (3)确认extension_dir为正确路径,以本机为例:extension_dir = "c:\php\ext"。

(4)假设仍然机器报错说找不到c:\php\ext\php_mssql.dll但明明存在这个文件。 

解决方法:将php_mssql.dll,ntwdblib.dll复制到系统文件夹\system32下重新启动測试。。

(注:上面两个dll文件不在同样文件夹下,我的为c:\php\ext\php_mssql.dll。c:\php\ntwdblib.dll) 

另外设置好了后记得重新启动server哦。

已经启用是否选择是 

确认server正确之后,再确认ntwdblib.dll 文件位置是否放到了 c:\windows\system32下 

同一时候要保证ntwdblib.dll 这个文件的版本号和sqlserver的版本号相应: 



以下是相应关系: 

1.ntwdblib.dll 版本号为 2000.2.8.0 是 相应 SqlServer2000(这个是网络查资料和推測,没装2000) 

2.ntwdblib.dll 版本号为 2000.80.194.0 是 相应 SqlServer2005(这个是用实验证明能够用,本人就是用笔记本装了2005) 

3.ntwdblib.dll 版本号为 2000.80.2039 是 相应 SqlServer2008(这个是推測没有装2008) 



6.其它问题: 

假设php apache Sql Server2005都在同一台机器上。訪问基本没有问题了。 

假设Sql Server2005和php机器是分离的。须要确认ping sqlserver所在机器的机器名能通,如过不通,改动php所在机器的\system32\drivers\etc下的hosts文件。添加一行 sqlserver所在机器的机器ip   sqlserver所在机器的机器名字。 

假设还是无法訪问,须要确认php所在的机器有无暗转mdac。要不索性安装一下sqlserver的client好了。

解决这个问题例如以下: 

1.下载两个文件 php_mssql.dll 和 ntwdblib.dll 

php_mssql.dll 假设这个没有拷贝到c:\windows\system32下,就非常easy出现 

ntwdblib2093.dll 这个文件要注意版本号,不然后面搞得非常郁闷. 







二、Linux下php连接sql server 2005 

1、首先依据须要安装LAMP环境中的除php外其它组件。 在Linux中使用freetds连接MS SQL 安装freetds

./configure  --prefix=/usr/local/freetds  --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static 

make  

make install 

重要提示一:这一步须要注意的是--with-tdsver 



2、配置freetds

server2005相应的tds version是7.2(貌似网上能查到的都写8.0)

配置/usr/local/freetds/etc/freetds.conf

# A typical Microsoft server

[1.1.1.21] 

          host = 1.1.1.21 

          port = 1433  

          tds version = 7.0 

重要提示:在调用mssql_connect函数时,须要注意的是。其第一个參数应该是[1.1.1.21](即在freetds.conf里的配置)。而不是sql server的IP!

3、编译安装php 

编译php的配置项依据需要设置,可是必需要增加的配置项为:--with-mssql=/usr/local/freetds/ 

注意:假设编译php载入freetds 时候出现不能找到freetds文件夹,则须要下面操作(官方的Faq): 

touch /usr/local/freetds/include/tds.h 

touch /usr/local/freetds/lib/libtds.a 



4、安装完php以后,全部准备工作都完毕了,以下就能够重新启动apache,就能够用php调用sql server 2005了。

PHP连接sql server 2005环境配置的更多相关文章

  1. 实战SQL Server 2005镜像配置全过程

    SQL Server 2005镜像配置基本概念 我理解的SQL Server 2005镜像配置实际上就是由三个服务器(也可以是同一服务器的三个 SQL 实例)组成的一个保证数据的环境,分别是:主服务器 ...

  2. JDBC连接SQL Server 2005步骤详解

    一.设置SQL Server服务器:    1.“开始” → “程序” → “Microsoft SQL Server 2005” → “配置工具” → “SQL Server Configurati ...

  3. Windows 2008服务器环境PHP连接SQL Server数据库的配置及连接方法

    背景: PHP程序常用的数据库是Mysql数据库,但是由于实际项目需要,要求PHP网站连接SQL Server数据库查询一些必要信息.因此,本文就来给大家介绍一下如何安装及配置PHP扩展,可以实现PH ...

  4. SQL SERVER 2005镜像配置(有无见证服务器都行)

    我用的是没有见证的,但找的文章里有镜像,所以都做一下补充,两个网址做的参考, 之所以在从他们那再补充一次是为了怕有一天他们的文章被删了我这还有个备用的,这两篇写的不错 其他的都不行 特别乱,这是找的最 ...

  5. 在 SQL Server 2005 中配置数据库邮件

    一.            SQL Server发邮件原理和组件介绍: 数据库邮件有4个组件:配置文件.邮件处理组件.可执行文件以及“日志记录和审核组件”. l  配置组件包括: 1)数据库邮件帐户包 ...

  6. JDBC连接SQL Server 2005 报错Connection refused: connect

    com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败.错误:“Connect ...

  7. Mybatis代码生成器 xml配置文件 连接SQL SERVER 2005

    <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguratio ...

  8. 配置SQL Server 2005 远程连接(转)

    方法如下:  一.为 SQL Server 2005 启用远程连接1. 单击"开始",依次选择"程序"."Microsoft SQL Server 2 ...

  9. 如何对SQL Server 2005进行设置以允许远程连接(转载)

    如何对SQL Server 2005进行设置以允许远程连接(转载) 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息.在使用任何程序连接到 S ...

随机推荐

  1. python - socket练习(输入系统命令)

    socket_server端代码: #!/usr/bin/env python # -*- coding:utf-8 -*- # Auther: pangguoping import socket i ...

  2. Ajax:Cross-Origin Resource Sharing(转)

    实例:http://blog.csdn.net/hongweigg/article/details/39054403 通过XHR实现Ajax通信的一个主要限制,来源于跨域安全策略.默认情况下,XHR对 ...

  3. contenteditable 属性

    定义和用法 contenteditable 属性规定是否可编辑元素的内容. 语法 <element contenteditable="value"> 属性值 值 描述 ...

  4. dispatch_async 与 dispatch_get_global_queue 的使用方法

    GCD (Grand Central Dispatch) 是Apple公司开发的一种技术,它旨在优化多核环境中的并发操作并取代传统多线程的编程模式. 在Mac OS X 10.6和IOS 4.0之后开 ...

  5. [OC笔记] static 关键字

    在变量声明前加上static关键字,可以使局部变量保留多次方法调用所得到的值.当多个方法对一个静态变量进行操作时,多个方法共享同一个静态变量的值.

  6. 在mac平台运行debug.exe

    最近准备学习操作系统,想先复习一下汇编语言.因为用的是mac,而看的汇编教材(<汇编语言>王爽)使用到DOS下的debug,在网上搜了一圈发现,mac 也可以模拟运行debug. 先到网上 ...

  7. 1、Spark 通过api,hfile两种形式获取hbase数据,简单样例

    pom内容: <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-se ...

  8. About USB Data Link Cable API

    About USB Data Link Cable API The text on this webpage is licensed under the Creative Commons Attrib ...

  9. Double Strings Solved Problem code: DOUBLE

    # Fuking silly, OTZ.... import sys def main(): n = int(raw_input()) for num in sys.stdin: if int(num ...

  10. 学习memcached的一个网站

    http://www.ibm.com/developerworks/cn/java/j-memcached1/#resources