php - 使用 php Codeigniter 的 mysql 转储,godaddy 的服务器问题

标签 php mysql codeigniter

我正在使用 php 来备份 mysql 数据库。 在本地主机上它工作正常,命令运行如下:

$cmd = 'D:\xampp\mysql\bin\mysqldump --user=' .$db['username'].' --password=  '. $db['password'] .'     --host='.$db['host'].'  '.$db['database'].' > '.FCPATH.$filename;
system($cmd,$return);

这在本地主机上运行完美,但我想在 godaddy 主机上运行,​​所以我不知道如何找到 mysqldump 路径或如何存储 .sql 文件。

在本地我的应用程序目录是这个 http://localhost/backup_app/ 我用来存储的文件夹是 http://localhost/backup_app/DB_Backup但我给出的存储 .sql 文件的实际路径使用的是 FCPATH 即 D:\xampp\htdocs\backup_app 我不知道如何在 godaddy 上生成此路径。

有人能帮忙吗?

最佳答案

您已标记为使用 codeigniter 提问。一旦我这样做了。我正在与您分享代码,希望它适用于您的 CI 版本。

在2.x版本中,CI dbforge类不支持mysqli驱动,所以我将驱动设置为mysql

$db['group_one']['dbdriver'] = 'mysql';

在常量中定义存储文件的路径。

define('ADMIN_DOCS_PATH','adminDocs/');

备份并将文件存储在磁盘上的代码。

public function getDatabaseBackup()
{
    $this->db = $this->load->database('group_one', TRUE);
    $this->load->dbutil();
    $doc_name = 'DatabaseBackup'.date('YmdHis').'.sql.zip';
    $prefs = array(
            'tables'      => array(),           // Array of tables to backup.
            'ignore'      => array(),           // List of tables to omit from the backup
            'format'      => 'zip',             // gzip, zip, txt
            'filename'    => $doc_name,         // File name - NEEDED ONLY WITH ZIP FILES
            'add_drop'    => TRUE,              // Whether to add DROP TABLE statements to backup file
            'add_insert'  => TRUE,              // Whether to add INSERT data to backup file
            'newline'     => "\n"               // Newline character used in backup file
          );
    $backup =& $this->dbutil->backup($prefs);
    $this->load->helper('file');
    write_file('./'.ADMIN_DOCS_PATH.$doc_name, $backup);
}

试试这个,同时确认您的 CI 版本及其对 dbforge 类的支持以下载数据库转储。

关于php - 使用 php Codeigniter 的 mysql 转储,godaddy 的服务器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41390770/

相关文章:

php - 无需数据库交互的动态状态更新

php - MySQL 离开有条件的连接查询 - 超时

php - 即使列类型为整数,Kohana DB::select 也会以字符串形式返回结果

php - 如何解决 Uncaught Error : Class 'mysqli' not found

mysql - Bash - 在 Ubuntu 18 中从 mysql-client 解析中分割字符串的问题

mysql - 如何使用表中的间隔计算日期

php - 生成对象的唯一 ID,该 ID 在各个实例中保持不变

php - 输入类型复选框中的值数组?

php - 如何将付款存储到数据库中的多个表

php - 使用 Codeigniter 将选定的复选框从数组数据传递到数据库