php - T-SQL 在创建备份文件后立即删除它
问题描述
我在 PHP / PDO 中创建了一个脚本,它执行一行 SQL 来对各种数据库进行文件备份。数据库名称列表和用于选择放置文件的文件夹的日期戳作为 HTTP REQUEST 数组元素传递。该脚本有效,但由于某种原因,一旦脚本完成运行,SQL Server 就会删除该文件。在资源管理器打开的情况下,我可以看到正确创建的文件夹和文件,但文件在完成后消失。这是
$dbh = getPDOConnection();
$sql = "BACKUP DATABASE :database TO DISK = :path";
$sth = $dbh->prepare($sql);
$dt = $_REQUEST["dtStamp"];
$uncPath = "\\\\[unc server]\\c$\MSSQL\\Backup\\backups_$dt";
if (!file_exists($uncPath)) {
mkdir($uncPath, null, true);
}
$responses = [];
foreach(explode(",", $_REQUEST["databases"]) AS $d=>$database) {
$sqlPath = "c:\\MSSQL\\Backup\\backups_$dt\\$database.bak";
$sth->bindValue(":database", $database);
$sth->bindValue(":path", $sqlPath);
$sth->execute();
$responses[] = $sth->fetch(PDO::FETCH_ASSOC);
}
谁能指出我所缺少的?我似乎找不到任何来自 Microsoft 的文档来说明为什么会发生这种行为。
解决方案
推荐阅读
- python-3.x - 将多个数据框及其各自的日期组合在一个数据框中?
- javascript - 获取 Array.prototype.some() 的结果长度
- google-maps - 谷歌地图忽略覆盖小部件的触摸事件
- r - 创建方形网格并将其导出为 shapefile 或表格
- c# - 有没有办法将转换为浮点数的字符串与实际浮点值比较到 if 语句中?
- c# - 有没有办法让 Regex.Match 只提供预期的捕获组?
- c - execvp后如何在子进程中使用文件描述符?
- jasmine - Jasmine 'expect(...).withContext is not a function' 错误
- algorithm - 如何找到双加权图的最佳路径?
- xml - 属性 c# 的 SOAP XML 序列化