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

Ben*_*Ben 4 php sql-server wordpress database-connection sqlsrv

系统信息

内容管理系统:WordPress

网络服务器:XAMPP

PHP 版本:5.5.30

微软管理工作室 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. 重新启动网络服务器
  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));
}
Run Code Online (Sandbox Code Playgroud)

错误

调用未定义的函数 sqlsrv_connect()

ImC*_*rky 5

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

添加到 php.ini:

extension=php_sqlsrv_55_ts.dll
Run Code Online (Sandbox Code Playgroud)

或者

extension=php_sqlsrv_55_nts.dll
Run Code Online (Sandbox Code Playgroud)

另外,您确实应该使用线程安全 ( _ts.dll) 或非线程安全 ( _nts.dll) 版本的驱动程序,而不是同时使用两者。我相信,当您使用 Apache 服务器时,您应该使用线程安全版本。所以你的 php.ini 应该有:

extension=php_sqlsrv_55_ts.dll
extension=php_pdo_sqlsrv_55_ts.dll
Run Code Online (Sandbox Code Playgroud)