Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL-如何通过单击一个按钮备份数据库?_Php_Mysql_Sql - Fatal编程技术网

Php SQL-如何通过单击一个按钮备份数据库?

Php SQL-如何通过单击一个按钮备份数据库?,php,mysql,sql,Php,Mysql,Sql,你好,stackoverflow用户 我有一个SQL数据库,我希望只需点击一个按钮(不要问为什么)就可以备份它,所以我如何做到这一点非常简单 只需创建一个新的PHP网页,比如说backup.PHP,并制作一个表单(带有数据库名称字段)和一个提交按钮。 单击时,您将重定向到另一个临时页面,比如saving.php 在该页中: <?php $dbhost = 'localhost:3036'; $dbuser = 'root'; $dbpass = 'password';

你好,stackoverflow用户

我有一个SQL数据库,我希望只需点击一个按钮(不要问为什么)就可以备份它,所以我如何做到这一点非常简单

只需创建一个新的PHP网页,比如说
backup.PHP
,并制作一个表单(带有数据库名称字段)和一个提交按钮。 单击时,您将重定向到另一个临时页面,比如
saving.php

在该页中:

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'password';

   $dbname = $_POST['database_name'];

   $backup = $dbname . date("Y-m-d-H-i-s") . '.gz';
   $command = "mysqldump --opt -h $dbhost -u $dbuser -p $dbpass ". "test_db | gzip > $backup";

   system($command);
?>

备份数据库后,请重定向回
backup.php


每次单击该按钮时,您的数据库都会备份到所需的位置

如果您有linux服务器,则以下代码会在您每次运行该服务器时为每月31天中的每一天保存一个文件。对于windows server,它可能需要一些MOD

创建指向此页面的表单:

    <?php


define('DB_HOST', 'localhost');
define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_username');
define('DB_PASSWORD', 'your_username_password');
define('BACKUP_SAVE_TO', 'backup_storage_path'); 

$time = time();
$day = date('j', $time);
if ($day == 1) {
    $date = date('Y-m-d', $time);
} else {
    $date = $day;
}

$backupFile = BACKUP_SAVE_TO . '/' . DB_NAME . '_' . $date . '.gz';
if (file_exists($backupFile)) {
    unlink($backupFile);
}
$command = 'mysqldump --opt -h ' . DB_HOST . ' -u ' . DB_USER . ' -p\'' . DB_PASSWORD . '\' ' . DB_NAME . ' | gzip > ' . $backupFile;
system($command);

?>

我不确定您当前的代码或您使用的是什么SQL模块。现在,我假设您正在使用内置的sqlite 3模块。在这种情况下,我仍然需要知道你所说的备份是什么意思。是将用户输入的信息保存到数据库中,还是将数据库中的数据复制到另一个数据库中作为备份?这个问题还不清楚,但我假设是第二个问题。
1. ) 首先导入Tkinter和sqlite 3

import Tkinter, sqlite3
2.)然后连接到存储数据库的文件,并创建一个游标

conn = sqlite3.connect("table.db")
c = conn.cursor()
3.)接下来创建Tkinter对象(本例中为按钮)并为其回调创建def

master = Tk()

def callback():
   c.execute("SELECT * FROM table_name")
   Data = c.fetchall()
   c.execute('''CREATE TABLE IF NOT EXISTS table_backup
         (id INTEGER PRIMARY KEY, some_row, some_row2)''')

   row_1 = Data[0]
   row_2 = Data[1]
   c.execute("INSERT INTO table_backup(some_row, some_row2) VALUES(?, ?);",   (row_1, row_2))
   conn.commit()
b = Button(master, text="OK", command=callback())
b.pack()

mainloop()

你的问题是关于哪一部分的?使用按钮创建页面?张贴表格?连接到数据库?做备份?让我们看看你到目前为止有什么,还有你的困境。以目前的形式来看,这个问题对SO来说太广泛了。另外,请阅读:也感谢您提供的示例,但我刚刚开始编码,我想知道如何创建一个代码来备份我的数据库,这是我见过的最奇怪的PHP代码(因为这是问题的标签)。你是对的,我没有看到标签。这是sqlite 3。我没有PHP方面的经验,非常抱歉。算了吧:)这里没有多少权利。Python而不是PHP。SQLite3而不是Mysql(Mysql也是标记之一)。:-)。我很确定,在phpmyadmin中选择数据库时,您可以按
Export
选项卡。然后选择您的首选项并按mysqldump–e–u[username]-p[password]-h[hostname][database name]>C:\this\is\path\to]file\[filename]。上面答案中的sql命令适用于linux,注释中的命令适用于windows。我希望您能通过查看windows命令了解如何在linux中提供位置路径。此文件将存储在指定的路径中。dosen不起作用。。。只输出一个空的sql文件顺便说一句,我是否需要写入[]或它只是为了显示它们的位置您必须删除
-p
和密码之间的空格。“如果使用短选项形式(-p),则选项和密码之间不能有空格。”这适用于linux和windows。