几个月前我遇到了完全相同的错误,这对我有用。
首先要使 sqlsrv 驱动程序工作,您需要 32 位 WAMP 服务器,它不适用于 64 位 WAMP。
我使用了 php_sqlsrv_55_ts DLL 文件,我可以在 WAMP 上的 PHP 中运行我的查询。
现在这里是有趣的地方。我假设您将在基于 Linux 的服务器上运行您的系统?
如果是这种情况,sqlsrv 不能在基于 Linux 的操作系统上运行,因此您必须在 Linux 操作系统上使用 mssql 驱动程序。 Here is a link 进行设置。
最后,您需要编写一个自定义函数来检查您的 PHP 扩展,然后根据您运行它们的位置选择正确的驱动程序。
这是我创建的一个函数,用于查看加载了哪个驱动器并确定要使用哪个驱动器。
// Function to check which MS SQL database driver is loaded
function get_db_loaded_extension() {
// Assign php loaded extensions to an array variable
$php_loaded_extensions_array = get_loaded_extensions();
// Loop through each php extension in the array
foreach($php_loaded_extensions_array as $php_ext) {
// Switch to check which MS SQL database driver is loaded
switch($php_ext) {
case "mssql":
$return = "mssql";
break;
case "sqlsrv":
$return = "sqlsrv";
break;
}
}
// Check if a MS SQL database driver have been found
if(!isset($return)) {
$return = js_dialog("No Microsoft SQL database driver loaded.");
}
return $return;
}
作为示例,这里还介绍了如何创建连接。
// Call function to check which MS SQL database driver extension is loaded
$mssql_db_driver = get_db_loaded_extension();
// Switch to determine how to make the appropriate connection
switch($mssql_db_driver) {
case "mssql":
// Set the MSSQL database variables
$mssql_servername = "xxx.xxx.xxx.xxx";
$mssql_username = "my_user";
$mssql_password = "**********";
// Create conection to MSSQL using the mssql php extension
$mssql_conn = mssql_connect($mssql_servername, $mssql_username, $mssql_password);
break;
case "sqlsrv":
// Set the MSSQL database variables
$mssql_servername = "xxx.xxx.xxx.xxx";
$mssql_conn_info = array(
"UID" => "my_user",
"PWD"=> "**********"
);
// Create conection to MSSQL using the sqlsrv php extension
$mssql_conn = sqlsrv_connect($mssql_servername, $mssql_conn_info);
break;
default:
echo $mssql_db_driver;
break;
}
// Check the MSSQL connection
if(!$mssql_conn) {
exit("Could not connect to the database. Please contact the administrator.");
}