关于php连接mssql:pdo odbc sql server

前端之家收集整理的这篇文章主要介绍了关于php连接mssql:pdo odbc sql server前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

只有一个PHP_pdoodbc.dll。 @H301_0@so~最新最好的PHP连接mssql方法应该是这样: @H_301_0@<div class="codetitle"><a style="CURSOR: pointer" data="83454" class="copybut" id="copybut83454" onclick="doCopy('code83454')"> 代码如下:

<div class="codebody" id="code83454"> @H_301_0@<?PHP @H_301_0@$cnx = new PDO("odbc:Driver={sql Server};Server=127.0.0.1;Database=test;",'sa','asd123'); @H_301_0@vardump($cnx); @H3010@$a = $cnx->query("SELECT * FROM [user]"); @H301_0@vardump($a); @H3010@foreach ($a as $b) { @H301_0@vardump($b); @H3010@} @H3010@?> @H301_0@

关于PHP无法连接MSsql数据库的问题 @H_301_0@

今天配置了新服务器,配置是IIS+PHP,结果运行时发现PHP连接远程mssql数据库出错,出错代码如下: @H_301_0@Warning: mssqlconnect(): Unable to connect to server: @H301_0@想想以前都是没问题的,怎么回事呢?后来去网上搜索,发现一篇文章,才发现原来服务器是需要安装mssql才能用PHP连接mssql的,本来新服务器上我是不需要用到mssql的,但是现在没办法了,只能把它装上了,安装了mssql之后就没问题了。 @H_301_0@我在想,如果是在linux上面的apache+PHP会怎样呢,不可能需要安装mssql吧,呵呵,晕了。 @H_301_0@下面是找到的一篇文章。 @H_301_0@PHP配置: @H_301_0@在PHP.ini文件里设置如下,找到 @H_301_0@;extension=PHP_mssql.dll 把前面的分号去掉 @H_301_0@找到extensiondir = d:\extension\ @H301_0@你的PHP.ini里面可能不是d:\extension\ @H_301_0@改成在PHP安装目录下面的extensions目录下面的PHP_mssql.dll,所在的路径,如果你没有把它移动到其他地方(假设你的PHP安装路径是d:\PHP) @H_301_0@就改成extension_dir=d:\PHP\extensions\ @H_301_0@然后重新启动web服务器 这一点很容易做到,但是做完这样的设置后还是连不上,错误的信息如下: @H_301_0@MS sql Server 数据库连接错误!请检查数据库主机变量设置是否正确!!! @H_301_0@而主机的变量设置我是一遍一遍的检查,那些设置是一点问题都没有的,翻遍网页,找到了下面的这点蛛丝马迹: PHP.com资料: @H_301_0@I am trying to connect to sql Server 2000 from PHP @H_3010@I bumped to following warning: @H301_0@Warning: mssqlconnect(): Unable to connect to server: SERVER\Portal @H3010@....... on line 5 @H3010@on line 5 there is: @H301_0@$db_connect = mssql_connect('SERVER\Portal','mypasswd'); @H3010@I did the following @H301_0@1.enabled PHP_mssql.dll extension in PHP.ini @H_301_0@2.every dll is in proper place(System32 or PHP folder),including ntwdblib.dll @H_3010@I search lots of profile throught web,but no one give me proper answer to resolve it. @H3010@after a few hour,I found the problem was caused by @H3010@ntwdblib.dll,which version is 7.00.839,when I replaced old ntwdblib.dll with the new @H3010@ntwdblib.dll,which version is 8.00.194,all problem are solved. @H301_0@We had some,read A LOT,of problems with MSsql under Windows 2003. @H_301_0@We had 2 the same windows,PHP,PHP-ini,everything machines but only one could connect. @H_3010@Unable to connect was the error message. @H301_0@Finnaly we checked the version of ntwdblib.dll and the one distributed with PHP was 7.00.... @H_301_0@and the version of the one on the sql Server install was 8.00.... so we copied this one in @H_301_0@the PHP and apache dir and it worked. @H_3010@问题就这样被找到了,惹祸的是它 ntwdblib.dll @H301_0@ntwdblib.dll的主要作用是提供sql server连接服务。 @H_301_0@我用的PHP版本是4.3.9,在安装它的服器的 windows/system32/ 下我查到ntwdblib.dll文件的版本是2000.2.8.0 ,这个版本支持的是sql server 7.0, 因为安装PHP时会把dlls下面的所有文件覆盖到系统 @H_301_0@目录下,所以当我用它去连接 sql server 2000 的时候当然会是无法连接了。 @H_301_0@后来我在一台正常安装sql server 2000 的服务器上查到 ntwdblib.dll的版本是 2000.80.2039.0,我把这个文件拷过去,覆盖掉以前的版本,重启服务器后,一切正常。 @H_301_0@补充:如果数据库名的开头是数字时也会提示无法打开,这时要做的很简单,把数据库的名字用中括号 @H_301_0@括起来就搞定了,如 123bbs 改写成 [123bbs]就没有问题了,另外如果你的数据库名字与sql server中的保留字冲突的话也会出现这种情况,用中括号的方法一样可以解决。 @H_301_0@最终,PHP无法正确连接sql server 2000的问题终于解决了,虽然耗费大半天的时间,但收获还是很大的,现在把它贴出来,也让遇到同样问题的兄弟们少走一些弯路。

原文链接:https://www.f2er.com/php/27737.html

猜你在找的PHP相关文章