通过php脚本和odbc备份数据库
数据库数组变量如下所示:通过php脚本和odbc备份数据库,php,sql,sql-server,odbc,Php,Sql,Sql Server,Odbc,数据库数组变量如下所示: $_CONFIG['db_databases'] = array( // Datenbanken 'acc' => 'ACCOUNT_DBF', 'chr' => 'CHARACTER_01_DBF', 'web' => 'WEBSITE_DBF', 'log' =>
$_CONFIG['db_databases'] = array( // Datenbanken
'acc' => 'ACCOUNT_DBF',
'chr' => 'CHARACTER_01_DBF',
'web' => 'WEBSITE_DBF',
'log' => 'LOGGING_01_DBF',
'eocrm' => 'EoCRM_DBF',
'eocrm_r' => 'EoCRM_DBF_R',
'itm' => 'ITEM_DBF',
'mng' => 'MANAGE_DBF',
'rnk' => 'RANKING_DBF',
);
$_CONFIG['db_backup_path'] = 'C:\xampp\htdocs\extras\Backups - Database';
path变量如下所示:
$_CONFIG['db_databases'] = array( // Datenbanken
'acc' => 'ACCOUNT_DBF',
'chr' => 'CHARACTER_01_DBF',
'web' => 'WEBSITE_DBF',
'log' => 'LOGGING_01_DBF',
'eocrm' => 'EoCRM_DBF',
'eocrm_r' => 'EoCRM_DBF_R',
'itm' => 'ITEM_DBF',
'mng' => 'MANAGE_DBF',
'rnk' => 'RANKING_DBF',
);
$_CONFIG['db_backup_path'] = 'C:\xampp\htdocs\extras\Backups - Database';
下面是备份函数的完整代码,该函数循环遍历数组“db_databases”中的每个数据库
foreach($_CONFIG['db_databases'] as $type => $strNameOfDatabase) {
if($type != 'log') {
if(@odbc_exec($odbc_connect, "
BACKUP DATABASE [$strNameOfDatabase]
TO DISK = '" . $_CONFIG['db_backup_path'] . "\\" . date('Y') . "\\" . date('m') . "\\$date-$strNameOfDatabase.bak'
WITH NOFORMAT, NOINIT, NAME = N'$strNameOfDatabase - Full Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
")) {
$notifyArray[] = "Success: Back up of [$strNameOfDatabase]";
}
else {
$notifyArray[] = "Error: Back up of [$strNameOfDatabase]";
}
}
}
我不知道它为什么不起作用。我试图手动在mssql 2014中执行相同的脚本,它执行并备份了数据库。路径或其他方面有问题吗?与使用SSMS内置的工具相比,您为什么需要这样做?我在我的网站上制作了一个管理面板,它只是管理面板的功能之一,用于备份数据库阵列中的数据库。您会遇到什么错误?