我在我的ubuntu 16.04服务器上通过PECL安装了php 7.0扩展sqlsrv和pdo_sqlsrv,以便连接到MSSQL数据库。在此之后,我重新整理了整个服务器。
调用sqlsrv_connect时,收到错误"调用未定义函数sqlsrv_connect()"。连接字符串如下所示:
$serverName = "serverName";
$connectionInfo = array( "Database"=>" ", "UID"=>" ", "PWD"=>" ");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
我根据我在谷歌上找到的信息进行了一些检查:
php -m
将sqlsrv和pdo_sqlsrv显示为模块php -i
显示php.ini文件包含对扩展名的其他.ini文件的引用:/etc/php/7.0/cli/conf.d/sqlsrv.ini和/etc/php/7.0/ CLI / conf.d / pdo_sqlsrv.ini cat /etc/php/7.0/cli/conf.d/sqlsrv.ini
返回 extension = sqlsrv.so ,表示.ini文件引用了正确的扩展名(同样适用于pdo_sqlsrv)php-config --extension-dir
返回 / usr / lib / php / 20151012 ,ls -la /usr/lib/php/20151012
显示 -rw-r - r-- 1 root root 326816 10月5 14 :55 sqlsrv.so 表示扩展文件位于正确的文件夹中(同样适用于pdo_sqlsrv) php -i | grep sqlsrv
返回
/etc/php/7.0/cli/conf.d/pdo_sqlsrv.ini,
/etc/php/7.0/cli/conf.d/sqlsrv.ini,
Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, sqlsrv, phar
PDO drivers => sqlsrv, mysql, sqlite
pdo_sqlsrv
pdo_sqlsrv support => enabled
pdo_sqlsrv.client_buffer_max_kb_size => 10240 => 10240
pdo_sqlsrv.log_severity => 0 => 0
sqlsrv
sqlsrv support => enabled
sqlsrv.ClientBufferMaxKBSize => 10240 => 10240
sqlsrv.LogSeverity => 0 => 0
sqlsrv.LogSubsystems => 0 => 0
sqlsrv.WarningsReturnAsErrors => On => On
您是否知道导致此错误的原因以及解决方法?如有必要,我很乐意提供更多信息。