PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)


Posted in PHP onJuly 02, 2012

php连接sql2005的问题,现在整合,同时把FAQ整合上.

我前面写的教程:

连接前配置系统:

1.检查文件 php5.2.5/ntwdblib.dll 默认下面有一个,不能连接再替换.

下载正确版本的 ntwdblib.dll (2000.80.194.0),地址: https://3water.com/dll/ntwdblib.dll.htmlPHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)

2.配置php

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

PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)

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

PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)

c、将php_mssql.dll拷贝到php.in中extension_dir 指定的目录或者系统system32目录下。(php_mssql.dll在php的压缩安装包中有)。

PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)

以上步骤完成后需要重启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 addresses" 
d. 在 TCP 动态端口 "TCP Dynamic Ports" 填入 1433 
e. 重启 SQL Server

-----------------------------------------------------------------------------------------------  
4.使用以下方式连接MS SQL Server 2005: 
代码如下:

PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)//链接数据库 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) $conn=mssql_connect('localhost','sa','123456'); 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)   mssql_select_db('gu_dde',$conn); 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)//query语句   
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) $Query="select * from dde_top"; 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) $AdminResult=mssql_query($Query); 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)//输出结果 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) $Num=mssql_num_rows($AdminResult); 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) for($i=0;$i<$Num;$i++) 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)   { 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) $Row=mssql_fetch_array($AdminResult); 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) echo($Row[1]); 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载) echo("
"); 
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)   }   
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)?>

输入http://127.0.0.1

PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)

-----------------------------------------------------------------------

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:/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() Unable to connect to server

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

PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)

同时右键查看属性:

PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)

已经启用是否选择是

确认服务器正确之后,再确认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.其他问题:

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

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

如果还是无法访问,需要确认php所在的机器有无暗转mdac。要不索性安装一下sqlserver的客户端好了。

解决问题如下:

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

php_mssql.dll 如果这个没有复制到c:/windows/system32下,就很容易出现

 

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

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(5)
Oct 09 PHP
Smarty模板快速入门
Jan 04 PHP
php的字符串用法小结
Jun 08 PHP
codeigniter教程之多文件上传使用示例
Feb 11 PHP
排序算法之PHP版快速排序、冒泡排序
Apr 09 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
初识Laravel
Oct 30 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 PHP
php写app用的框架整理
Sep 29 PHP
php+laravel依赖注入知识点总结
Nov 04 PHP
php.ini-dist 和 php.ini-recommended 的区别介绍(方便开发与安全的朋友)
Jul 01 #PHP
apache+codeigniter 通过.htcaccess做动态二级域名解析
Jul 01 #PHP
php下载文件的代码示例
Jun 29 #PHP
PHP sprintf() 函数的应用(定义和用法)
Jun 29 #PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 #PHP
PHP删除数组中的特定元素的代码
Jun 28 #PHP
PHP安全性漫谈
Jun 28 #PHP
You might like
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
thinkphp项目如何自定义微信分享描述内容
2017/02/20 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
2017/06/07 PHP
Yii框架Session与Cookie使用方法示例
2019/10/14 PHP
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
JavaScript如何动态创建table表格
2020/08/02 Javascript
JavaScript中splice与slice的区别
2017/05/09 Javascript
vue如何获取点击事件源的方法
2017/08/10 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
pygame游戏之旅 添加键盘按键的方法
2018/11/20 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Python闭包与装饰器原理及实例解析
2020/04/30 Python
Python如何将装饰器定义为类
2020/07/30 Python
python 实现弹球游戏的示例代码
2020/11/17 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
高品质和独特的产品世界:Creations and Collections
2018/01/07 全球购物
New Balance俄罗斯官方网上商店:购买运动鞋
2020/03/02 全球购物
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
中西医结合临床医学专业大学生自荐信
2013/09/28 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
FP-growth算法发现频繁项集——发现频繁项集
2021/06/24 Python
Python学习开发之图形用户界面详解
2021/08/23 Python
Python+OpenCV实现在图像上绘制矩形
2022/03/21 Python