2017-02-19 5 views
-2

こんにちはstackoverflowのユーザーSQL - 1つのボタンをクリックしてデータベースをバックアップするにはどうすればよいですか?

私は、ボタンのクリックでバックアップそれを(理由は聞かないでください)ので、どのように私は

+2

あなたの質問はどの部分ですか?ボタンでページを作成しますか?フォームを投稿しますか?データベースに接続していますか?バックアップを作る?あなたが今までに持っていたものと、あなたが立ち往生しているものを見せてください。現在の形では、この問題はあまりにも広すぎるためです。 –

+0

また、[最小、完全、および検証可能な例を作成する方法](http://stackoverflow.com/help/mcve)および[よく質問する方法は?](http:// stackoverflow .com/help/how-to-ask) –

+0

サンプルをありがとう、私はちょうどコーディングを開始し、私のバックアップデータベースを作成する方法を知りたい – H3X3R

答えて

0

非常に単純なことを行うDまでできるようにしたいSQLデータベースを持っています。

新しいPHP Webページ(例:backup.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

にあなたがそのボタンをクリックするたびにリダイレクト: それをクリックすると、あなたは別の一時的なページにリダイレクトするには、そのページではsaving.php

を言いますあなたのデータベースはあなたの望む場所にバックアップされます

+0

'mysqldump -e -u [username] -p [ファイル名] -h [ホスト名] [データベース名]> C:\ this \ is \ path \ to]ファイル\ [ファイル名] .sql' – Siraj

+0

上記のコマンドはLinux用で、コメントはウィンドウ用です。 私はあなたがLinuxでも場所パスを与える方法をwindowsコマンドを見てアイデアを持っていることを願っています。 – Siraj

+0

このファイルは指定されたパスに格納されます。 – Siraj

0

Linuxサーバーをお持ちの場合、次のコードは毎回31日の毎日のファイルを保存しますあなたはそれを実行する。 Windowsサーバーの場合、いくつかの改造が必要な場合があります。

このページに指示し、フォームを作成します。

<?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); 

?> 
0

あなたの現在のコードについてまたはあなたがどのようなSQLモジュールを使用しているイムわからないが。現時点では、組み込みのsqlite 3モジュールを使用していると仮定します。その場合、私はあなたがバックアップによって何を意味するかをまだ知る必要があります。ユーザーが入力した情報をデータベースに保存するのですか、データベース内のデータをバックアップとして別のデータベースにコピーすることを意味しますか?質問は不明ですが、それは第2のものと仮定します。
1)まず、インポートのTkinterとsqliteの3

import Tkinter, sqlite3 

2)[次へ]を作成)あなたのdatabseが保存されているファイルに接続し、カーソル

3.

conn = sqlite3.connect("table.db") 
c = conn.cursor() 
を作成するの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() 
+0

これは、私が見てきたところで、もっとも奇妙なPHPコードです。 –

+0

あなたが正しいです、私はタグを見ませんでした。 thats sqlite 3.私はPHPの経験がないので、ごめんなさい。それを忘れなさい:) –

+0

ここに多くの権利。 PHPではなくPython。 Mysqlの代わりにSQLite3(これもタグの1つです)。 :-) –

関連する問題