最近用php连接sql server,遇到了一点问题,还好都解决了,现在总结一下,以便后来人少走弯路。
当然我这里有个前提的,就是知道要打开扩展是怎么回事噢(大侠勿怪),至于配置apache和php环境的不在本贴讨论之列。
问题列表:
1。打开php_mssql.dll的扩展后apache不能启动或者提示找不到该扩展。
我在网上搜了一下,基本都是这样来解决的
1)拷贝php_mssql.dll到system32目录下。
2)安装sql server客户端。
2。提示mssql_connect错误,不能连接数据库,或者是参数错误。
原因说明:
虽然你已经把extension_dir路径设置了,而且php的ext/extensions目录下也确实有相关的dll文件,但是apache就是提示找不到相关扩展。拷贝到system32目录下还是老问题。
其实这个原因是这样的,有的扩展文件是有相关性的,如果需要的其他文件不匹配,那么apache也是会提示找不到扩展的。所以兄弟们不能在这个地方迷惑。
对apache找不到php_mssql.dll扩展或者因为这个扩展启动不了的问题,解决方法就是把php目录下的ntwdblib.dll文件拷贝到system目录下,然后restart apache。这里有个说明,如果你的ntwdblib.dll文件版本太低,apache启动会没有问题,但mssql_connect会报错,提示不能执行这个文件。我的2000.80.194.0版本没有问题。
如果不是以上能解决的,另外可能的问题:
请下载Service Pack 3a (SP3a). 升级一下系统就ok。(本人没有测试,网上有gm贴过)
其他的解决方案:
I was having problem in connecting Ms-SQL server with mssql_connect(srvr,uid,pwd). I simply created a DSN to my Database and replaced it with "server_name". i.e.
mssql_connect(dsn,uid,pwd);
it worked well
如果你还有其他问题,请查看:http://cn.php.net/mssql,上面有很多帖子供你参考。
下班了,回家吃饭了,呼呼~