调用未定义函数 sqlsrv_connect() - 疑难解答
Call to undefined function sqlsrv_connect() - Troubleshooting
系统信息
内容管理系统:WordPress
网络服务器:XAMPP
PHP版本:5.5.30
MS 管理工作室 17
目标
使用 PHP
建立 MSSQL 数据库连接
做了什么
- 已下载 SQLSRV 驱动程序
- 复制文件php_pdo_sqlsrv_55_nts.dll和php_pdo_sqlsrv_55_ts.dll到目录
C:\xampp\php\ext
- 在 php.ini 文件的动态扩展部分添加了以下行:
extension=php_pdo_sqlsrv_55_ts.dll
和 extension=php_pdo_sqlsrv_55_nts.dll
- 重新启动 Web 服务器
- 已确认 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));
}
错误
Call to undefined function sqlsrv_connect()
您可能编辑了错误的 php.ini 文件。使用 php 信息检查正确的 php.ini 文件。
您可以使用这个脚本:
<?php echo phpinfo(); ?>
或者,如果您有 CLI 访问权限,请键入 php -i 以获取列出的信息。
检查 php.ini 文件的正确路径。
尝试使用以下代码连接 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);
您已将 SQLSRV 驱动程序的 PDO 变体添加到扩展列表中,但尚未添加基本驱动程序 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
系统信息
内容管理系统:WordPress
网络服务器:XAMPP
PHP版本:5.5.30
MS 管理工作室 17
目标
使用 PHP
建立 MSSQL 数据库连接做了什么
- 已下载 SQLSRV 驱动程序
- 复制文件php_pdo_sqlsrv_55_nts.dll和php_pdo_sqlsrv_55_ts.dll到目录
C:\xampp\php\ext
- 在 php.ini 文件的动态扩展部分添加了以下行:
extension=php_pdo_sqlsrv_55_ts.dll
和extension=php_pdo_sqlsrv_55_nts.dll
- 重新启动 Web 服务器
- 已确认 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));
}
错误
Call to undefined function sqlsrv_connect()
您可能编辑了错误的 php.ini 文件。使用 php 信息检查正确的 php.ini 文件。
您可以使用这个脚本:
<?php echo phpinfo(); ?>
或者,如果您有 CLI 访问权限,请键入 php -i 以获取列出的信息。 检查 php.ini 文件的正确路径。
尝试使用以下代码连接 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);
您已将 SQLSRV 驱动程序的 PDO 变体添加到扩展列表中,但尚未添加基本驱动程序 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