PHP连接sqlserver的相关知识.docx

上传人:b****5 文档编号:7637009 上传时间:2023-01-25 格式:DOCX 页数:6 大小:39.87KB
下载 相关 举报
PHP连接sqlserver的相关知识.docx_第1页
第1页 / 共6页
PHP连接sqlserver的相关知识.docx_第2页
第2页 / 共6页
PHP连接sqlserver的相关知识.docx_第3页
第3页 / 共6页
PHP连接sqlserver的相关知识.docx_第4页
第4页 / 共6页
PHP连接sqlserver的相关知识.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

PHP连接sqlserver的相关知识.docx

《PHP连接sqlserver的相关知识.docx》由会员分享,可在线阅读,更多相关《PHP连接sqlserver的相关知识.docx(6页珍藏版)》请在冰豆网上搜索。

PHP连接sqlserver的相关知识.docx

PHP连接sqlserver的相关知识

PHP连接sqlserver的相关知识

本文档整理了php连接sqlserver数据库的服务器配置方法,实际测试用的是wamp服务器,web服务器是apache,php版本是php5.4,成功连接到server2012。

php连接sqlserver过程中用到微软的SQLServerDriverforPHP程序,本程序支持apahce,IIS。

我用的是apache服务器,如果你的应用服务器是IIS的,只要选择相应的IIS驱动程序就可以,配置方法类似,具体的可查看SQLServerDriverforPHP文件夹内的SQLSRV_Help.chm文件。

从sqlserver2005开始,已经不能通过配置php.ini里面的php_mssql.dll扩展实现连接sqlserver。

php_mssql.dll最高支持到sqlserver2000版本数据库连接(php中当然还是有这个扩展库的因此要禁用)。

sqlserver2005及以上版本的php连接要用到SQLServerDriverforPHP。

这个扩展软件由微软提供。

以下介绍两个SQLServerDriverforPHP的版本:

SQLServerDriverforPHP2.0版本:

(sqlserver20.exe)

支持数据库版本:

sqlserver2005,sqlserver2008

支持php版本:

 php5.2 ,php5.3

支持服务器软件:

IIS,apache

SQLServerDriverforPHP3.0版本:

(sqlserver30.exe)

支持数据库版本sqlserver2005,sqlserver2008,sqlserver2012

支持php版本:

php5.3,php5.4

支持服务器软件:

IIS,apache

PHP连接sqlserver数据库的测试,配置实测总结如下:

我的是wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b,使用SQLServerDriverforPHP3.0版本,可以通过php正常连接到sqlserver2012。

使用SQLServerDriverforPHP2.0版本,可以通过php5.2正常连接到sqlserver2005与sqlserver2008。

对于使用sqlserver2005的,推荐使用这版本配置。

实测版本的详细配置如下:

wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b

1.直接安装wamp.exe(php是5.4以上版本)就可以了。

2.把SQLServerDriverforPHP3.0解压到E:

\wamp\bin\php\php5.4.3\ext目录。

3.如果是sqlserver2005的话,直接下一步就可以;如果是sqlserver2008或以上版本还要安装一个微软的工具包sqlncli.msi,直接点击安装。

4.修改php.ini配置文件,在文件中增加下面的内容

extension=php_sqlsrv_54_ts_vc6.dll(ts:

ThreadSafe)

extension=php_pdo_sqlsrv_54_ts_vc6.dll

extension=php_pdo.dll

5.重启动wamp服务器,查看phpinfo信息。

如果看到以下内容则恭喜你相关扩展库安装成功了!

6.然后写一个php连接sqlserver数据库的测试代码,如下图:

php

header(“content-type:

text/html;charset=utf-8″);

$serverName=“(local)”;

$uid=“用户名”;

$pwd=“密码”;

$connectionInfo=array(“UID”=>$uid,”PWD”=>$pwd,”Database”=>”test”);

$conn=sqlsrv_connect($serverName,$connectionInfo);

if($conn==false)

{

echo“连接失败!

”;

die(print_r(sqlsrv_errors(),true));

}

$query=sqlsrv_query($conn,“selecttop8id,title,contentfromtest.dbo.test”);

while($row=sqlsrv_fetch_array($query)){

echo$row['id'].”######”.iconv(‘GB2312′,’UTF-8′,$row['title']).”######”.iconv(‘GB2312′,’UTF-8′,$row['content']).”
”;

}

?

>

7.用浏览器去访问与sqlserver2014相关的php文件,正常的话就可以看到结果。

补充相关知识点(网上截取,只供参考):

环境:

-Apache2.2.6

-PHP5.2.5

-SQLServer2005

-WindowsXPSP2

步骤:

1.首先按通常做法配置好PHP5连接MSSQLServer

2.下载正确版本的ntwdblib.dll(2000.80.194.0),地址:

3.覆盖apache2.2.6\bin\ntwdblib.dll

4.覆盖php5.2.5\ntwdblib.dll

5.运行SQLServer配置管理器:

SQLServerConfigurationManager,打开协议Protocols

6.允许命名管道"namedpipes"和"tcp/ip"

7.右键点击"tcp/ip",打开属性Properties标签"IPaddresses"

8.在TCP动态端口"TCPDynamicPorts"填入1433

9.重启SQLServer、Apache和PHP

使用以下方式连接MSSQLServer2005:

mssql_connect('localhost,1433',USERNAME,PASSWORD);

配置php

1、将php.ini中的extension=php_mssql.dll的注释符号去掉。

2、将php.ini将mssql.secure_connection=Off改为on。

3、将php_pdo_sqlsrv_54_nts.dll、php_sqlsrv_54_nts.dll

或php_pdo_sqlsrv_54_ts.dll、php_sqlsrv_54_nts.dll

(有ns表示是NotThreadSafe非线程)添加到E:

\wamp\bin\php\php5.4.3\ext文件夹下

注意:

实际使用中发现如果通过php压缩文件手工安装php到iis下,必须重启机器而不仅仅是iis。

4、需要保证php或者系统system32下有ntwdblib.dll,查看属性确保其版本为8.00.194而不是7.0;

其他设置

如果phpapacheSqlServer2000都在同一台机器上,访问基本没有问题了。

如果SqlServer2000和php机器是分离的,需要确认pingsqlserver所在机器的机器名能通,如过不通,修改php所在机器的\system32\drivers\etc下的hosts文件,增加一行sqlserver所在机器的机器ipsqlserver所在机器的机器名字。

如果还是无法访问,需要确认php所在的机器有无暗转mdac。

要不索性安装一下sqlserver的客户端好了。

配置sqlserver

a.运行SQLServer配置管理器:

SQLServerConfigurationManager,打开协议Protocols

b.允许命名管道"namedpipes"和"tcp/ip"

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

d.在TCP动态端口"TCPDynamicPorts"填入1433

e.重启SQLServer

FAQ常见问题:

1报错:

Fatalerror:

Calltoundefinedfunctionmssql_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:

\AppServ5.2.6\php\ext"。

(4)如果仍然机器报错说找不到c:

\AppServ5.2.6\php\ext\php_mssql.dll但明明存在这个文件。

解决方法:

将php_mssql.dll,ntwdblib.dll拷贝到系统目录\system32下重启测试。

(注:

上面两个dll文件不在相同目录下,我的为c:

\AppServ5.2.6\php\ext\php_mssql.dll;c:

\AppServ5.2.6\php\ntwdblib.dll)

另外设置好了后记得重启服务器哦。

2.mssql_connect()Unabletoconnecttoserver

确认SQLServer2005服务器正常.检查TCP/IP已经启用

同时右键查看属性:

已经启用是否选择是

确认服务器正确之后,再确认ntwdblib.dll文件位置是否放到了c:

\windows\system32下

同时要保证ntwdblib.dll这个文件的版本和sqlserver的版本对应:

下面是对应关系:

2.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.其他问题:

如果phpapacheSqlServer2000都在同一台机器上,访问基本没有问题了。

如果SqlServer2000和php机器是分离的,需要确认pingsqlserver所在机器的机器名能通,如过不通,修改php所在机器的\system32\drivers\etc下的hosts文件,增加一行sqlserver所在机器的机器ipsqlserver所在机器的机器名字。

如果还是无法访问,需要确认php所在的机器有无暗转mdac。

要不索性安装一下sqlserver的客户端好了。

解决问题如下:

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

php_mssql.dll如果这个没有复制到c:

\windows\system32下,就很容易出现;

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

如果你的MSSQL数据库是2000的,基本上操作都是一样的。

新增一台win2003server系统的服务器。

以前其他的服务器上使用php5.0/5.1,数据库是SQLServer2000;本次则打算安装SQLServer2005,php5.3.2;据了解,php5.3版本使用微软的FastCGI模式,这种模式和传统的CGI模式相比采用了更加合理的解析进程启动模式,速度比CGI快2倍;在PHP5.3以上的版本已经对ISAPI模式不支持。

在已经安装iis6和mssqlserver2005后,整个安装过程是

1.安装FastCGI;

2.安装php5.3.2;

3.安装SQLServerDriverforPHP1.1驱动;

一、在服务器上安装FastCGI

在服务器上打开下面网址运行MicrosoftWeb平台安装程序:

勾选web服务器/自定义/应用程序开发/FastCGI1.0,下一步直至FastCGI安装完成;

有关FASTCGI的官方说明文档:

二、安装php5.3.2

下载网址:

我们下载这里目前所见的最新版本php-5.3.2-Win32-VC9-x86.msi到服务器上,VC6用于apache,vc9用于win2003serveriis等;熟悉php的程序员可以下载zip版自行配置;

运行php-5.3.2-Win32-VC9-x86.msi,安装中出现对话框,选择安装目录C:

\PHP,选择IISFASTCGI;完成安装。

三、配置IIS支持PHP

1.FACTCGI安装后在c:

\windows\system32\inetsrv下有五个文件,其中有用的是:

fcgtext.dll,fcgitext.ini;打开FASTCGI配置文件fcgitext.ini,在最后[Types]修改为这样的样式:

[Types]

php=PHP

[PHP]

ExePath=c:

\Php\php-cgi.exe

2.打开IIS管理器,网站上点右键-属性-主目录-配置-添加fcgiext.dll为可执行文件,配置如下图

经过上述步骤,已经完成了PHP5.3.2在iis6上的安装;如果下载的是zip版,则需对php.ini文件进行配置;

之后,在iis里默认文档添加php。

四、安装SQLServerDriverforPHP1.1驱动

SQLServerDriverforPHP1.1驱动支持SQLServer2005和SQLServer2008,目前最新的下载地址是:

系统环境:

1.安装文件名为SQLServerDriverForPHP11.EXE;

2.拷贝驱动php_sqlsrv_53_ts_vc9.dll到相应的位置PHP目录下ext文件夹内;

3.配置的时候若需要配置一个PHP的扩展,此扩展需要将相关的dll文件全部复制到PHP的扩展目录里面,然后通过修改php.ini来实现PHP的扩展,在php.ini里面需要指明扩展路径,一般情况是在最末尾添加一行,所以修改php.ini实现扩展:

在php.ini的一大堆;extension=**.dll格式里面添加一行添加的一行内容为:

extension=php_sqlsrv_53_ts_vc9.dll

保存php.ini后拷贝一份到windows目录下;

选择php_sqlsrv_53_ts_vc9.dll的原因在于,它是线程安全的驱动,如果服务器本身的环境是使用的php5ts.dll,对应的就用这个驱动;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1