PHP连接sqlserver的相关知识.doc_第1页
PHP连接sqlserver的相关知识.doc_第2页
PHP连接sqlserver的相关知识.doc_第3页
PHP连接sqlserver的相关知识.doc_第4页
PHP连接sqlserver的相关知识.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP连接sqlserver的相关知识本文档整理了php连接sql server数据库的服务器配置方法,实际测试用的是wamp服务器,web服务器是apache,php版本是php5.4,成功连接到server 2012。php连接sql server过程中用到微软的SQL Server Driver for PHP程序,本程序支持apahce,IIS。我用的是apache服务器,如果你的应用服务器是IIS的,只要选择相应的IIS驱动程序就可 以,配置方法类似,具体的可查看SQL Server Driver for PHP文件夹内的SQLSRV_Help.chm文件。从sql server2005开始,已经不能通过配置php.ini里面的php_mssql.dll扩展实现连接sqlserver。php_mssql.dll最高支持到sql server2000版本数据库连接(php中当然还是有这个扩展库的因此要禁用)。sql server 2005及以上版本的php连接要用到SQL Server Driver for PHP。这个扩展软件由微软提供。以下介绍两个SQL Server Driver for PHP的版本:SQL Server Driver for PHP 2.0版本:(sqlserver20.exe)支持数据库版本:sql server 2005 ,sql server 2008支持php版本: php 5.2,php 5.3支持服务器软件: IIS ,apacheSQL Server Driver for PHP 3.0版本:(sqlserver30.exe)支持数据库版本sql server2005,sqlserver 2008,sql server 2012支持php版本: php 5.3,php5.4支持服务器软件: IIS ,apachePHP连接sqlserver数据库的测试,配置实测总结如下:我的是wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b,使用SQL Server Driver for PHP 3.0版本,可以通过php正常连接到sqlserver 2012。使用SQL Server Driver for PHP 2.0版本,可以通过php5.2正常连接到sql server 2005与sql server 2008。对于使用sql server 2005的,推荐使用这版本配置。实测版本的详细配置如下:wampserver2.2e-php5.4.3-httpd2.2.22-mysql5.5.24-32b1.直接安装wamp.exe(php是5.4以上版本)就可以了。2.把SQL Server Driver for PHP 3.0解压到E:wampbinphpphp5.4.3ext目录。3.如果是sql server 2005的话,直接下一步就可以;如果是sql server 2008或以上版本还要安装一个微软的工具包sqlncli.msi,直接点击安装。4.修改php.ini配置文件,在文件中增加下面的内容extension=php_sqlsrv_54_ts_vc6.dll(ts:ThreadSafe)extension=php_pdo_sqlsrv_54_ts_vc6.dllextension=php_pdo.dll5.重启动wamp服务器,查看phpinfo信息。如果看到以下内容则恭喜你相关扩展库安装成功了! 6.然后写一个php连接sqlserver数据库的测试代码,如下图:$uid,”PWD”=$pwd,”Database”=”test”);$conn = sqlsrv_connect( $serverName,$connectionInfo);if( $conn = false)echo “连接失败!”;die( print_r( sqlsrv_errors(), true);$query = sqlsrv_query($conn, “select top 8 id,title,content from test.dbo.test”);while($row = sqlsrv_fetch_array($query)echo $rowid.”#”.iconv(GB2312,UTF-8,$rowtitle).”#”.iconv(GB2312,UTF-8,$rowcontent).”;?7.用浏览器去访问与sqlserver2014相关的php文件,正常的话就可以看到结果。补充相关知识点(网上截取,只供参考):环境: - Apache 2.2.6 - PHP 5.2.5 - SQL Server 2005 - Windows XP SP2步骤:1. 首先按通常做法配置好PHP5连接MS SQL Server 2. 下载正确版本的 ntwdblib.dll (200),地址: /dll/1/ntwdblib.zip 3. 覆盖 apache2.2.6binntwdblib.dll 4. 覆盖 php5.2.5ntwdblib.dll 5. 运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols 6. 允许命名管道 named pipes 和 tcp/ip 7. 右键点击 tcp/ip,打开属性 Properties 标签 IP addresses 8. 在 TCP 动态端口 TCP Dynamic Ports 填入 1433 9. 重启 SQL Server、Apache和PHP 使用以下方式连接MS SQL Server 2005: mssql_connect(localhost,1433, USERNAME, PASSWORD);配置php1、将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:wampbinphpphp5.4.3ext文件夹下注意:实际使用中发现如果通过php压缩文件手工安装php到iis下,必须重启机器而不仅仅是iis。4、需要保证php或者系统system32下有ntwdblib.dll,查看属性确保其版本为8.00.194而不是7.0;其他设置如果php apache Sql Server2000都在同一台机器上,访问基本没有问题了。如果Sql Server2000和php机器是分离的,需要确认ping sqlserver所在机器的机器名能通,如过不通,修改php所在机器的system32driversetc下的hosts文件,增加一行 sqlserver所在机器的机器ip sqlserver所在机器的机器名字。如果还是无法访问,需要确认php所在的机器有无暗转mdac。要不索性安装一下sqlserver的客户端好了。配置sqlserver a. 运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols b. 允许命名管道 named pipes 和 tcp/ip c. 右键点击 tcp/ip,打开属性 Properties 标签 IP addresses d. 在 TCP 动态端口 TCP Dynamic Ports 填入 1433 e. 重启 SQL ServerFAQ常见问题: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:AppServ5.2.6phpext。 (4)如果仍然机器报错说找不到c:AppServ5.2.6phpextphp_mssql.dll但明明存在这个文件。 解决方法:将php_mssql.dll,ntwdblib.dll拷贝到系统目录system32下重启测试。 (注:上面两个dll文件不在相同目录下,我的为c:AppServ5.2.6phpextphp_mssql.dll;c:AppServ5.2.6phpntwdblib.dll) 另外设置好了后记得重启服务器哦。2.mssql_connect() Unable to connect to server确认SQLServer2005服务器正常.检查 TCP/IP已经启用同时右键查看属性:已经启用是否选择是确认服务器正确之后,再确认ntwdblib.dll 文件位置是否放到了 c:windowssystem32下同时要保证ntwdblib.dll 这个文件的版本和sqlserver的版本对应:下面是对应关系:2.ntwdblib.dll 版本为 200 是 对应 SqlServer2000(这个是网络查资料和猜测,没装2000)2.ntwdblib.dll 版本为 200 是 对应 SqlServer2005(这个是用实验证明可以用,本人就是用笔记本装了2005)3.ntwdblib.dll 版本为 2000.80.2039 是 对应 SqlServer2008(这个是猜测没有装2008)6.其他问题:如果php apache Sql Server2000都在同一台机器上,访问基本没有问题了。如果Sql Server2000和php机器是分离的,需要确认ping sqlserver所在机器的机器名能通,如过不通,修改php所在机器的system32driversetc下的hosts文件,增加一行 sqlserver所在机器的机器ip sqlserver所在机器的机器名字。如果还是无法访问,需要确认php所在的机器有无暗转mdac。要不索性安装一下sqlserver的客户端好了。解决问题如下:1.下载两个文件 php_mssql.dll 和 ntwdblib.dllphp_mssql.dll 如果这个没有复制到c:windowssystem32下,就很容易出现;ntwdblib2093.dll 这个文件要注意版本,不然后面搞得很郁闷.如果你的MSSQL数据库是2000的,基本上操作都是一样的。新增一台win2003 server系统的服务器。以前其他的服务器上使用php5.0/5.1,数据库是SQL Server 2000;本次则打算安装SQL Server 2005,php5.3.2;据了解,php5.3版本使用微软的FastCGI模式,这种模式和传统的CGI模式相比采用了更加合理的解析进程启动模 式,速度比CGI快2倍;在PHP5.3以上的版本已经对ISAPI模式不支持。在已经安装iis6和ms sql server 2005后,整个安装过程是1.安装FastCGI;2.安装php5.3.2;3.安装SQL Server Driver for PHP 1.1驱动;一、在服务器上安装FastCGI在服务器上打开下面网址运行Microsoft Web 平台安装程序:/web/gallery/install.aspx?appsxml=&appid=PHP%3bPHP%3bPHP勾选web服务器/自定义/应用程序开发/FastCGI1.0,下一步直至FastCGI安装完成;有关FASTCGI的官方说明文档:/articles/view.aspx/IIS7/Hosting-Web-Applications/PHP/Configuring-FastCGI-Extension-for-IIS6-0-and-IIS5-?Page=1二、安装php5.3.2下载网址:/downloads/releases/我们下载这里目前所见的最新版本php-5.3.2-Win32-VC9-x86.msi 到服务器上,VC6用于apache,vc9用于win2003 server iis等;熟悉php的程序员可以下载zip版自行配置;运行php-5.3.2-Win32-VC9-x86.msi,安装中出现对话框,选择安装目录C:PHP,选择IIS FASTCGI;完成安装。三、配置IIS支持PHP1.FACTCGI安装后在c:windowssystem32inetsrv下有五个文件,其中有用的是:fcgtext.dll,fcgitext.ini;打开FASTCGI配置文件fcgitext.ini,在最后Types修改为这样的样式:Typesphp=PHPPHPExePath=c:Phpphp-cgi.exe2.打开IIS管理器,网站上点右键-属性-主目录-配置-添加fcgiext.dll为可执行文件,配置如下图经过上述步骤,已经完成了PHP5.3.2在iis6上的安装;如果下载的是zip版,则需对php.ini文件进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论