php5.3.3连接SQL SERVER 2000

  选修了Sql Server技术这门课,作业是做一个结合数据库的小程序,打算用php+Sql Server,搜了一下php连接数据库的相关文章,现测试方法后,整理如下:

  首先,找到PHP官方网站的文档,相关函数

  mssql_connect

  函数原型如下:resourcemssql_connect ([ string$servername [, string$username [, string$password [, bool$new_link= false ]]]] )

  作用:mssql_connect — Open MS SQL server connection

  返回值:Returns a MS SQL link identifier on success, or FALSE on error.

  直接连,不成功,下面是提示信息:

  Fatal error: Call to undefined function mssql_connect() in D:\wamp\www\my_php\sql_server\test_conn.php on line 3

  ps,测试代码如下:

  <?php
    $server = 'localhost';
    $link = mssql_connect( $server , 'sa' , '123456');
    if (!$link) {
        die('Something went wrong while connecting to MSSQL');
        }
  ?>

  百度到的文章有介绍说去掉php.ini配置文件里extension=php_mssql.dll前边的;

  去掉,重启服务器,提示:PHP Startup:Unable to load dynamic library ‘D:/wamp/bin/php/php5.3.3/ext/php_mssql.dll’ - 找不到指定的模块

  (不能载入动态链接库php_mssql.dll文件)

  在网上下载了这个文件,拷到相应文件夹下还是不行,看到一篇文章,讲到这个文件依赖于ntwdblib.DLL文件,于是下载,同样放到相应文件夹下,还是不行

  又找到CSDN上一个朋友的文章介绍如下:

  怎么样用PHP自带的扩展php_mssql.dll连接SQL Server 2000,用mssql系列函数来操作,和操作MySQL的一样。

  1、打开PHP配置文件php.ini,找到;extension=php_mssql.dll把前面的分号去掉。

  2、找到mssql.secure_connection = Off修改成 mssql.secure_connection = On。

  3、把PHP文件夹下的php_mssql.dll和ntwdblib.DLL这两个文件拷贝到C:\windows\system32\文件夹下。

  4、重启Apache,OK

 照做了,依然提示:PHP Startup:Unable to load dynamic library ‘D:/wamp/bin/php/php5.3.3/ext/php_mssql.dll’ - 找不到指定的模块

  (不能载入动态链接库php_mssql.dll文件)

  又找到一篇文章,链接如下:

  http://blog.sina.com.cn/s/blog_55d5b4eb0100h3k7.html

  正文如下:

  同事用php+mssql修改一个系统,却一直配置不了环境。遂做了一个测试,一般情况下我们会注意php.ini的文件配置,而不注意IIS或者Apache的相关事项。

    PHP+MSSQLCall to undefined function mssql_connect() 错误解决:

    如果服务器端没有安装MSSQL即使去掉EXTENTION中的 mssql.dll也会提示此错误。

    解决办法:

   1.打开php.ini 修改 ;extension=php_mssql.dll去掉前面的;号(注意该文件是否存在,不存在去搜索下载);

   2.“在http.conf中加入:LoadFile (PHP物理路径)\ntwdblib.dll”或者“复制PHP目录下ntwdblib.dll 文件到SYSTEM32目录下”。

 

   从php_mssql.dll引入表中可以看到该dll依赖于:

   php5ts.dll
   ntwdblib.dll
   msvcrt.dll
   kernel32.dll

   php5ts.dll所依赖的dll

   kernel32.dll
   advapi32.dll
   msvcr71.dll
   user32.dll
   netapi32.dll

   最后:查看一下kernel32.dll、advapi32.dll、user32.dll、netapi32.dll是否都存在于系统目录下。

   注意:1.windows下面一定要安装mssql或者,mssql客户端。如果一定要不安装那就操作第2注意项。

         2.ntwdblib.dll有版本要求,最好拷贝mssql里面的文件。只测试过客户端下的并通过。

         3.mssql.secure_connection的设置:网络连接mssql.secure_connection= Off,本地连接设为On。

  测试不成功。

  怀疑是php_mssql.dll文件的问题,然后搜索5.3.3 php_mssql.dll,找到帖子,如下:

  http://bbs.php100.com/read-htm-tid-67841.html

 错误提示:Call to undefined function mssql_connect()。
 百度google了很久,能试的都试啦。。
  我想请问下 5.3.3这个版本没法连接mssql吗?如果不行,其他什么版本行呢?
  谢谢。

  解答:

  1.5.3不能直接连了,要下载微软插件,看这里吧
  http://www.phptogether.com/archives/7914

  2. 建议使用PDO连接MSSQL数据库。
  PHP5.X以后Microsoft提供了Windows平台的专门扩展。
  http://www.microsoft.com/sqlserver/2005/en/us/php-driver.aspx

  纳闷了,官方说明:

  http://msdn.microsoft.com/library/cc296172%28v=SQL.90%29.aspx

  SQL Server Driver for PHP 是一项 PHP 5 扩展插件,它提供对 SQL Server 2005 和 SQL Server 2008 的数据访问。

  系统要求:

  http://msdn.microsoft.com/zh-cn/library/cc296170%28v=SQL.90%29.aspx

  受支持的操作系统,例如:
   Windows Server 2003 Service Pack 1
   Windows XP Service Pack 3
   Windows Vista
   Windows Server 2008
   Windows 7

  到这里,基本已经得出结论了:PHP5.3.3不能直接连接SQL SERVER2000。

 

  原来all editions是指这个意思啊!不包括2000

  接下来我打算试着使用ODBC连接2000,另开了一篇文章:php5.3连接sqlserver2000


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值