这段代码出了什么问题?我目前正在使用链接调用下面的代码。还有什么需要这个工作吗?错误具体在于 这一行:
$backupdir = 'C:\wampbackup\x.sql';
这可能是一个可能的解决方案。我是一个初学者,所以请忍受我缺乏的知识。
$host= 'localhost';
$user= 'root';
$pass= '';
$db= 'hospital;
$backupdir = 'C:\wampbackup\x.sql';
// Compute day, month, year, hour and min.
$today = getdate();
$day = $today[mday];
if ($day < 10) {
$day = "0$day";
}
$month = $today[mon];
if ($month < 10) {
$month = "0$month";
}
$year = $today[year];
$hour = $today[hours];
$min = $today[minutes];
$sec = "00";
// Execute mysqldump command.
// It will produce a file named $db-$year$month$day-$hour$min.gz
// under $DOCUMENT_ROOT/$backupdir
system(sprintf(
'mysqldump --opt -h %s -u %s -p%s %s | gzip > %s/%s/%s-%s%s%s-%s%s.gz',
$host,
$user,
$pass,
$db,
getenv('DOCUMENT_ROOT'),
$backupdir,
$db,
$year,
$month,
$day,
$hour,
$min
));
echo '+DONE';
?>
答案 0 :(得分:1)
更改此行:
$backupdir = 'C:\wampbackup\x.sql';
成:
$backupdir = 'C:\\wampbackup\\x.sql';
您需要使用另一个\
反斜杠转义反斜杠。 :)
答案 1 :(得分:1)
您应该将错误消息与代码一起发布。但如果它不是复制粘贴错误,我发现了你的错误:它在第4行,关闭撇号缺失
$db= 'hospital;
答案 2 :(得分:0)
作为一个未成年人,你可以跳过整个
if ($day < 10) {
$day = "0$day";
}
稍后您在sprintf()调用中使用这些值,这可以自动执行此类格式化。只需使用%s
更改匹配的%02d
(使用d
字符打印2
ecimal padded到0
个空格。