当我使用SQL Server Management Studio还原数据库时,它可以正常工作。
但是当我从php恢复它时(使用函数sqlsrv_query),数据库就会陷入“恢复...”状态。
我使用的sql查询就是这个:
RESTORE DATABASE WEB FROM DISK = 'C:\Program Files (x86)\Zend\Apache24\htdocs\db\WEB.bak' WITH REPLACE,RECOVERY
我还尝试使用与php一起使用的相同用户(在sqlsrv_connect上)使用SQL Server身份验证模式登录并执行相同的查询,但它确实有效。只有PHP才能解决问题。
PHP代码:
<?php
$connection_info = array( "Database" => "master", "UID" => "sa", "PWD" => "workingpw" );
$sql_handle = sqlsrv_connect( "DESKTOP\SQLEXPRESS", $connection_info );
if( !$sql_handle ) die();
sqlsrv_configure( "WarningsReturnAsErrors", 0 );
sqlsrv_query($sql_handle, "RESTORE DATABASE WEB FROM DISK = '" . getcwd() . "\\db\\WEB.bak' WITH REPLACE,RECOVERY");
$stmt = sqlsrv_query($sql_handle, "USE WEB");
if($stmt === false)
{
die(print_r(sqlsrv_errors()));
}
else echo "Success!";
?>
PHP执行后出错
“[Microsoft] [用于SQL Server的ODBC驱动程序13] [SQL Server]数据库”WEB“无法打开。它正处于还原过程中。”发生。 Restoring state
请帮忙。