我试图编写一个从网页上运行的PHP脚本,并且我对它有问题;这个脚本似乎在运行,但是当我转到我为它指定的目录转储数据库时,没有什么.。
这是mysqldump脚本的php文件:
?php
require( "config.php" );
exec(' mysqldump -u [$DB_USERNAME] -p [$DB_PASSWORD] [$DB_NAME] > bzpbackup.sql');
echo ' <html> Database backup complete! Please click the link below to
download backup.
<br>
<form target="http://solismagna.com/dbbackups/bzpbackup.sql type="submit">
Download Backup</form> </html> ';
?>这个文件名为sqldump.php。config.php文件存储用于mysqldump用户名、密码和数据库名的变量。以前,我有一个要转储到"home/dbbackups/bzpbackup.sql",的目录,但是我删除了它,认为它可能是一个不正确的目录。另外,正如您所看到的,我试图在脚本完成后向index.php输出一条消息。这:"bzpbackup.sql');回显‘数据库备份完成’!请单击下面的链接下载备份。下载备份“显示,无论脚本是否已经完成。”我使用以下代码输出index.php页面上的内容:
?php $f="sqldump.php";
$data = file_get_contents($f);
echo $data;
?>下面是config.php文件:
<?php
ini_set( "display_errors", true );
date_default_timezone_set( "America/New_York" );
define( "DB_USERNAME", "username" );
define( "DB_PASSWORD", "password" );
define( "DB_NAME", "database" );
require( "sqldump.php" );
/*function handleException( $exception ) {
echo "Sorry, a problem occurred. Please try later.";
error_log( $exception->getMessage() );
}
set_exception_handler( 'handleException' );*/
?>问题是我需要配置文件中的sqldump.php吗?
无论如何,当我单击index.php文件上的“启动数据库备份”按钮时,我无法判断脚本是否真正工作。
说到这里,下面是按钮的代码:
<form action="sqldump.php" type="submit" method="get">
<button type="submit">Start Database Backup</button>
</form> mysqldumps的默认目录是什么,我的备份当前是否存储在那里?此外,我是否应该将config.php包括在index.php的头上?我还希望脚本完成后显示下载按钮。有人能告诉我怎么做吗?
很抱歉有这么长的问题。我仍然是PHP的新手。
谢谢!:)
发布于 2013-12-08 06:15:03
再次尝试"home/dbbackups/bzpbackup.sql“位置,但在开头放置一个正斜杠。因此,"/home/dbbackups/bzpbackup.sql“。
此外,确保"/home/dbbackups“目录可由任何用户写入,方法是:
chmod ugo+w /home/dbbackupshttps://stackoverflow.com/questions/20450485
复制相似问题