PHP MySQL 转储脚本帮助

标签 php mysql

我正在尝试创建一个脚本来创建 mysql 数据库的转储,但是,我无法让它工作。以下是我要起诉的代码。

    $file = 'backup_'.substr(md5(TIME_NOW), 0, 10).random_str(30);
    header('Content-Type: text/x-sql');
    header('Content-Disposition: attachment; filename="'.$file.'.sql"');            

    // process backup
    $time = date('dS F Y \a\t H:i', TIME_NOW);
    $header = "-- Database Backup\n-- Generated: {$time}\n-- -------------------------------------\n\n";
    $contents = $header;

    $table_selects = array();
    $table_list = $db->list_tables($config['database']['database']);
    foreach($table_list as $id => $table_name)
    {
        $table_selects[$table_name] = $table_name;
    }

    $field_list = array();
    $fields_array = $db->show_fields_from($table_name);
    foreach($fields_array as $field)
    {
        $field_list[] = $field['Field'];
    }       

    $query = $db->simple_select($table);
    while($row = $db->fetch_array($query))
    {
        $insert = "INSERT INTO {$table} ($fields) VALUES (";
        $comma = '';
        foreach($field_list as $field)
        {
            if(!isset($row[$field]) || is_null($row[$field]))
            {
                $insert .= $comma."NULL";
            }
            else
            {
                $insert .= $comma."'".$db->escape_string($row[$field])."'";
            }
            $comma = ',';
        }
        $insert .= ");\n";
        $contents .= $insert;
        clear_overflow($fp, $contents);
    }

但是它不起作用......而且我知道我有一些代码错误,例如要选择哪些表(我想选择所有表)。

最佳答案

下面可能是一种更简单的备份数据库的方法,而无需处理所有信息。由于它是一条 MySQL 语句,因此它的运行速度可能也会非常快。

从这里开始:
http://www.noupe.com/how-tos/10-ways-to-automatically-manually-backup-mysql-database.html

<?php  
    include 'config.php';  
    include 'opendb.php';  

    $tableName  = 'mypet';  
    $backupFile = 'backup/mypet.sql';  
    $query      = "SELECT * INTO OUTFILE '$backupFile' FROM $tableName";  
    $result = mysql_query($query);  

    include 'closedb.php';  
?>  

关于PHP MySQL 转储脚本帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6867278/

相关文章:

php - 动态更新mysql表

php - HTML 解析器获取元素之间的内容

php - 尝试将查询结果放在表格中?

MYSQL:使用字母数字 Id 在特定值之后选择接下来的 100 行

php - 从数据库中多次搜索

mysql - 是否有保存有关 MySQL 表的额外信息的标准?

PHPUnit 模拟一个对象的属性

javascript - 使用 Ajax 更新 href ID

php - 如何在教义2中添加正确的一对多关系?

java - 结果集到二维数组