选修了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。
原来all editions是指这个意思啊!不包括2000
接下来我打算试着使用ODBC连接2000,另开了一篇文章:php5.3连接sqlserver2000
转载自
http://hi.baidu.com/fzlqr/item/b944abe0d7a9842f6dabb8c6
需要的dll文件去 http://www.jb51.net/dll/ntwdblib.dll.html下载