调用未定义的函数sqlsrv_connect() - 故障排除

4

系统信息

CMS: WordPress

Web服务器: XAMPP

PHP版本: 5.5.30

SQL Server管理工具: 17版

目标

使用PHP建立MSSQL数据库连接

已完成的工作

  1. 下载了SQLSRV驱动程序
  2. 将文件php_pdo_sqlsrv_55_nts.dllphp_pdo_sqlsrv_55_ts.dll复制到目录C:\xampp\php\ext
  3. 在php.ini文件的动态扩展部分添加以下行:extension=php_pdo_sqlsrv_55_ts.dllextension=php_pdo_sqlsrv_55_nts.dll
  4. 重新启动Web服务器
  5. 确认sqlsrv在phpinfo()中列出

代码

$serverName = "technology-pc\sqlexpress";

// The connection will be attempted using Windows Authentication.
$connectionInfo = array( "Database"=>"example_db");
$conn = sqlsrv_connect($serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
} else {
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}

错误

调用未定义的函数sqlsrv_connect()

3个回答

5

您已将PDO版本的SQLSRV驱动程序添加到扩展列表中,但尚未添加基本驱动程序php_sqlsrv_55_ts.dll

请在php.ini中添加:

extension=php_sqlsrv_55_ts.dll

或者

extension=php_sqlsrv_55_nts.dll

另外,你应该使用线程安全(_ts.dll)或非线程安全(_nts.dll)版本的驱动程序,而不是同时使用两者。我认为,由于你正在使用Apache服务器,所以应该使用线程安全版本。因此,你的php.ini文件应该包含以下内容:

extension=php_sqlsrv_55_ts.dll
extension=php_pdo_sqlsrv_55_ts.dll

感谢您提醒我。现在它完美地工作了。 - Ben Löffel

1
您可能编辑了错误的php.ini文件。使用php info检查正确的php.ini文件。
您可以使用以下脚本:
<?php echo phpinfo(); ?>

如果您有CLI访问权限,请键入php -i以获取列出的信息。 检查您的php.ini文件的正确路径。


1

尝试以下代码连接mssql数据库

$server = 'dburl.com\MSSQLSERVER, 1433';
$username = 'uname';
$password = 'password';

$connectionInfo = array( "Database"=>$database, "UID"=>$username, "PWD"=>$password,"ReturnDatesAsStrings"=>true);
$conn = sqlsrv_connect( $server, $connectionInfo);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接