php读取sqlserver文件流,php链接sqlserver详解

选修了Sql Server技术这门课,作业是做一个结合数据库的小程序,打算用php+Sql

Server,搜了一下php连接数据库的相关文章,现测试方法后,整理如下:

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

函数原型如下: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,测试代码如下:

$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吗?如果不行,其他什么版本行呢?

谢谢。

解答:

纳闷了,官方说明:

http://msdn.microsoft.com/library/cc296172(v=SQL.90).aspx

SQL Server Driver for PHP 是一项 PHP 5 扩展插件,它提供对

SQL Server 2005 和 SQL Server 2008 的数据访问。

系统要求:

http://msdn.microsoft.com/zh-cn/library/cc296170(v=SQL.90).aspx

受支持的操作系统,例如:

Windows Server 2003 Service

Pack 1

Windows XP Service Pack

3

Windows Vista

Windows Server 2008

Windows 7

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

SERVER2000。

a4c26d1e5885305701be709a3d33442f.png

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

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

转载自

http://hi.baidu.com/fzlqr/item/b944abe0d7a9842f6dabb8c6

需要的dll文件去 http://www.jb51.net/dll/ntwdblib.dll.html下载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值