我在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提供的任何文档来说明为什么会发生这种行为。