PHP Fatal error: Call to undefined function sqlsrv_connect() in php链接sqlserver出现该错误; 原因是:php5.3 及以上版本去掉了以前的链接方式,要想使用,就需要使用PDO或者SQLSVR ,需要加上微软提供的dll扩展。之前在网上看到有写到php5.5链接SQL SERVER,觉得不够详细, 所以自己再写一个php5.6的。 之前看到php5.5教程 http://blog.csdn.net/xocom/article/details/45840725 微软官网提供的dll不支持64位,这里有个非官方版本的下载链接 http://download.csdn.net/detail/tan1103/8771927 下载好之后解压,其中x64文件夹里面的是支持64位系统的,我们用的是php5.6版本 用到两个文件 php_sqlsrv_56_nts.dll 和 php_pdo_sqlsrv_56_nts.dll 或者
php_sqlsrv_56_ts.dll 和 php_pdo_sqlsrv_56_ts.dll 那是用ts?还是nts呢?
ts和nts的意思是:是否线程安全。和php版本有关,用phpinfo();查看,打印出phpinfo,找到Thread Safety,如果是disabled就是非线程安全,就用nts版本;
如果是enable就用ts版本,我的是nts。
然后把相应版本的dll文件(我的是php_sqlsrv_56_nts.dll 和 php_pdo_sqlsrv_56_nts.dll)复制到php5.6\ext(扩展程序所在的文件夹,大多就在php的目录的下);
然后在php.ini引进扩展,下面是我的引用路径,D:\php5.6\ext\也是的扩展文件所在目录
extension=D:\php5.6\ext\php_sqlsrv_56_nts.dll
extension=D:\php5.6\ext\php_pdo_sqlsrv_56_nts.dll
(我的php.ini的extension_dir定位到C:\盘,所以我需要用绝对路径引用,也可以修改成extension_dir=ext,然后就相对路径引用也行了, 如extension=php_sqlsrv_56_nts.dll,大多数是不用修改的,反正用绝对路径准没错)
最后重启服务(是apache的就重启apache,iis就重启iis),就OK了。

Thomas2 年前
发表在:SQL Server2008报错:值不能为空[S35]
Thomas2 年前
发表在:解决Composer Installing dependencies from lock file你这都看不清了
1114 年前
发表在:Cetnos7 新手安装ZABBIX4.0.5详解教程有人嘛
Tyreunorm2020-08-27 22:51
发表在:php5.6 连接SQL SERVER<a href=https://mega...
耗子2020-04-08 15:02
发表在:写给正在创业的自己看到了,想写点。可能我开过这网站了,以后...
Thomas2019-11-19 19:57
发表在:twcms您的IP地址已改变,为了安全考虑,请重新登录这个好
酷喵2016-08-03 15:22
发表在:我家侄女成长记前排支持啦!
五爷2015-12-01 03:26
发表在:关于centos中的相关查看命令@admin:呵呵
admin2015-12-01 01:49
发表在:关于centos中的相关查看命令非常不错