关于php连接mssql:pdo odbc sql server


Posted in PHP onJuly 20, 2011

只有一个php_pdo_odbc.dll。
so~最新最好的php连接mssql方法应该是这样:

<?php 
$cnx = new PDO("odbc:Driver={SQL Server};Server=127.0.0.1;Database=test;",'sa','asd123'); 
var_dump($cnx); 
$a = $cnx->query("SELECT * FROM [user]"); 
var_dump($a); 
foreach ($a as $b) { 
var_dump($b); 
} 
?>

关于PHP无法连接MSSQL数据库的问题
今天配置了新服务器,配置是IIS+php,结果运行时发现php连接远程mssql数据库出错,出错代码如下:
Warning: mssql_connect(): Unable to connect to server:
想想以前都是没问题的,怎么回事呢?后来去网上搜索,发现一篇文章,才发现原来服务器是需要安装mssql才能用php连接mssql的,本来新服务器上我是不需要用到mssql的,但是现在没办法了,只能把它装上了,安装了mssql之后就没问题了。
我在想,如果是在linux上面的apache+php会怎样呢,不可能需要安装mssql吧,呵呵,晕了。
下面是找到的一篇文章。
php配置:
在php.ini文件里设置如下,找到
;extension=php_mssql.dll 把前面的分号去掉
找到extension_dir = d:\extension\
你的php.ini里面可能不是d:\extension\
改成在php安装目录下面的extensions目录下面的php_mssql.dll,所在的路径,如果你没有把它移动到其他地方(假设你的php安装路径是d:\php)
就改成extension_dir=d:\php\extensions\
然后重新启动web服务器

这一点很容易做到,但是做完这样的设置后还是连不上,错误的信息如下:
MS SQL Server 数据库连接错误!请检查数据库主机变量设置是否正确!!!
而主机的变量设置我是一遍一遍的检查,那些设置是一点问题都没有的,翻遍网页,找到了下面的这点蛛丝马迹:

php.com资料:
I am trying to connect to SQL Server 2000 from PHP
I bumped to following warning:
Warning: mssql_connect(): Unable to connect to server: SERVER\Portal
....... on line 5
on line 5 there is:
$db_connect = mssql_connect('SERVER\Portal', 'sa', 'my_passwd');
I did the following
1.enabled php_mssql.dll extension in PHP.ini
2.every dll is in proper place(System32 or PHP folder),including ntwdblib.dll
I search lots of profile throught web ,but no one give me proper answer to resolve it.
after a few hour ,I found the problem was caused by
ntwdblib.dll ,which version is 7.00.839 ,when I replaced old ntwdblib.dll with the new
ntwdblib.dll ,which version is 8.00.194 ,all problem are solved.
We had some, read A LOT, of problems with MSSQL under Windows 2003.
We had 2 the same windows, php, php-ini, everything machines but only one could connect.
Unable to connect was the error message.
Finnaly we checked the version of ntwdblib.dll and the one distributed with PHP was 7.00....
and the version of the one on the SQL Server install was 8.00.... so we copied this one in
the php and apache dir and it worked.
问题就这样被找到了,惹祸的是它 ntwdblib.dll
ntwdblib.dll的主要作用是提供sql server连接服务。
我用的php版本是4.3.9,在安装它的服器的 windows/system32/ 下我查到ntwdblib.dll文件的版本是2000.2.8.0 ,这个版本支持的是sql server 7.0, 因为安装PHP时会把dlls下面的所有文件覆盖到系统
目录下,所以当我用它去连接 sql server 2000 的时候当然会是无法连接了。
后来我在一台正常安装sql server 2000 的服务器上查到 ntwdblib.dll的版本是 2000.80.2039.0,我把这个文件拷过去,覆盖掉以前的版本,重启服务器后,一切正常。
补充:如果数据库名的开头是数字时也会提示无法打开,这时要做的很简单,把数据库的名字用中括号 [ ]
括起来就搞定了,如 123bbs 改写成 [123bbs]就没有问题了,另外如果你的数据库名字与sql server中的保留字冲突的话也会出现这种情况,用中括号的方法一样可以解决。
最终,PHP无法正确连接sql server 2000的问题终于解决了,虽然耗费大半天的时间,但收获还是很大的,现在把它贴出来,也让遇到同样问题的兄弟们少走一些弯路。

PHP 相关文章推荐
我的论坛源代码(二)
Oct 09 PHP
PHP 生成的XML以FLASH获取为乱码终极解决
Aug 07 PHP
WordPress判断用户是否登录的代码
Mar 17 PHP
通达OA公共代码 php常用检测函数
Dec 14 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
利用php获取服务器时间的实现代码
Jun 07 PHP
PHP中array_map与array_column之间的关系分析
Aug 19 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
Dec 11 PHP
php创建图像具体步骤
Mar 13 PHP
PHP 无限级分类
May 04 PHP
php写入文件不覆盖的实例讲解
Sep 17 PHP
解决thinkphp5未定义变量会抛出异常,页面错误,请稍后再试的问题
Oct 16 PHP
PHP mcrypt可逆加密算法分析
Jul 19 #PHP
PHP中date()日期函数有关参数整理
Jul 19 #PHP
php URL验证正则表达式
Jul 19 #PHP
PHP中static关键字原理的学习研究分析
Jul 18 #PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
Jul 18 #PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 #PHP
PHP通过iconv将字符串从GBK转换为UTF8字符集
Jul 18 #PHP
You might like
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
php实现paypal 授权登录
2015/05/28 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
showModelessDialog()使用详解
2006/09/21 Javascript
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)
2012/03/21 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
页面使用密码保护代码
2013/04/10 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JS字符串false转boolean的方法(推荐)
2017/03/08 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
2020/04/20 Javascript
小程序实现简单语音聊天的示例代码
2020/07/24 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
Flask框架信号用法实例分析
2018/07/24 Python
python 3.3 下载固定链接文件并保存的方法
2018/12/18 Python
解决Keras使用GPU资源耗尽的问题
2020/06/22 Python
出门问问全球官方商城:Tichome音箱和TicWatch智能手表
2017/12/02 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
世界上最大的铁人三项商店:Tri UK
2020/11/04 全球购物
测绘工程个人的自我评价
2013/11/23 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
小学雷锋月活动总结
2014/07/03 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
医院财务人员岗位职责
2015/04/14 职场文书
2015年电教工作总结
2015/05/26 职场文书
利用Python网络爬虫爬取各大音乐评论的代码
2021/04/13 Python
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server