PHP连接sqlserver的相关知识Word文件下载.docx
- 文档编号:20758242
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:6
- 大小:39.87KB
PHP连接sqlserver的相关知识Word文件下载.docx
《PHP连接sqlserver的相关知识Word文件下载.docx》由会员分享,可在线阅读,更多相关《PHP连接sqlserver的相关知识Word文件下载.docx(6页珍藏版)》请在冰豆网上搜索。
支持数据库版本sqlserver2005,sqlserver2008,sqlserver2012
php5.3,php5.4
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'
]).”<
br/>
>
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.右键点击"
,打开属性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配置管理器:
b.允许命名管道"
c.右键点击"
d.在TCP动态端口"
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;
\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.其他问题:
解决问题如下:
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,对应的就用这个驱动;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 连接 sqlserver 相关 知识