【发布时间】:2017-01-25 16:39:46
【问题描述】:
我想做一个简单的网站,它可以打开、显示和运行 sql server 查询,就像从 sql server management studio 执行查询一样。它已经可以执行一些查询,例如选择(然后将其显示为表格)、插入、更新、删除,包括当我使用 where/group/order 语句时。 但是,当我使用查询对数据库进行备份时:
BACKUP DATABASE 'mydb' TO DISK='pathname\filename.bak' WITH INIT/NOINIT
它只能备份一次数据库,然后当我使用相同的输入执行查询时,它没有错误,而且执行过程中也没有产生文件备份。我不知道为什么,但是当我从 sql server management studio 执行相同的查询时(使用不同的文件名,以便以前的文件不会被覆盖),它执行时没有错误并创建另一个文件备份。
代码: php
$sql = "ALTER DATABASE $db_name SET RECOVERY FULL";
$stmt = sqlsrv_query($conn, $sql);
if($stmt === false)
{
die(print_r(sqlsrv_errors()));
}
else
{
echo "Recovery model set to FULL";
}
if($_POST['type']=="Backup Full")
{
$query="BACKUP DATABASE $db_name TO DISK='$file\\$filename.bak' WITH
NOINIT;";
echo "<br>".$query."<br>";
$stat=sqlsrv_query($conn,$query);
if($stat == false)
{
echo "Error to retrieve info, THIS IS THE ERROR : <br />";
die(print_r(sqlsrv_errors()));
}
else
{
echo "Success!";
}
}
- 它会创建一个新文件 .bak,其中填充了我的数据库备份
- 它在 'if' 中返回错误
- 当我尝试使用不同的文件名再次运行代码时,它不再创建 .bak 文件。
- 当我重新启动电脑时,一切恢复正常(再次创建另一个 .bak)
【问题讨论】:
-
你编码...?
-
显示你现有的代码...
标签: php sql-server database