ホームページ バックエンド開発 PHPチュートリアル php mysqlデータベースバックアッププログラム_PHPチュートリアル

php mysqlデータベースバックアッププログラム_PHPチュートリアル

Jul 13, 2016 pm 05:05 PM
mysql php による できる バックアップ 供給 データベース 方法 プログラム

php mysql 数据库备份程序 /* 提供一款实例的php mysql 数据库备份程序,很好方法的可以对你的数据库进行在线实时备份,这样可以保存数据库的安全,并且他是以.sql文件保存在bakdata目录还日期生成的数据库备份文件的。

php教程 mysql教程 数据库教程备份程序
/*
提供一款实例的php mysql 数据库备份程序,很好方法的可以对你的数据库进行在线实时备份,这样可以保存数据库的安全,并且他是以.sql文件保存在bakdata目录还日期生成的数据库备份文件的。
*/

?>







数据管理



esweb系统数据管理


/*--------------界面--------------*/if(!$_post['act']){/*----------------------*/
$msgs[]="服务器备份目录为$backup";
$msgs[]="对于较大的数据表,强烈建议使用分卷备份";
$msgs[]="只有选择备份到服务器,才能使用分卷备份功能";
//show_msg($msgs);
?>

如果需要备份、还原或者优化 大量的数据 , 推荐使用"帝国备份王2010"

<フォーム名="myform" メソッド="post" action="sql_backup.php">
























/*----*/else{/*--------------メインプログラム---------------------- ------------------*/
if($_post['weizhi']=="localpc"&&$_post['fenjuan']=='yes')
{$msgs[]="サーバーへのバックアップを選択した場合のみ、ボリューム バックアップ機能を使用できます";
show_msg($msgs); ページエンド();}
if($_post['fenjuan']=="はい"&&!$_post['filesize'])
{$msgs[]="ボリューム バックアップ機能が選択されましたが、ボリューム ファイル サイズが入力されていませんでした";
show_msg($msgs); ページエンド();}
if($_post['weizhi']=="サーバー"&&!writeable($backup))
{$msgs[]="バックアップ ファイル ストレージ ディレクトリ '$backup' は書き込み可能ではありません。ディレクトリ属性を変更してください。";
show_msg($msgs); ページエンド();}

/*----------すべてのテーブルをバックアップします---------------*/if($_post['bfzl']=="quanbubiao"){/* - ---*/
/*----ボリュームに分割されていません*/if(!$_post['fenjuan']){/*---------------------- - -------*/
if(!$tables=$d->query("$mysqldb からテーブルのステータスを表示"))
{$msgs[]="データベース構造の読み取り中にエラーが発生しました"; $sql="";
while($d->nextrecord($tables))
{
$table=$d->f("名前");
$sql.=make_header($table);
$d->query("select * from $table");
$num_fields=$d->nf();
while($d->nextrecord())
{$sql.=make_record($table,$num_fields);}
}
$filename=date("ymd",time())."_all.sql";
if($_post['weizhi']=="localpc") down_file($sql,$filename);
elseif($_post['weizhi']=="サーバー")
{if(write_file($sql,$filename))
$msgs[]="すべてのデータ テーブル データのバックアップが完了し、バックアップ ファイル '$backup/$filename' が生成されました";
else $msgs[]="すべてのデータテーブルのバックアップに失敗しました";
show_msg($msgs);
ページエンド();
}
/*-----------------ロールを終了しないでください*/}/*---------------------- --- */
/*---------------ボリューム*/else{/*---------------------- - -*/
if(!$_post['filesize'])
{$msgs[]="バックアップ ファイルのボリューム サイズを入力してください"; if(!$tables=$d->query("$mysqldb からテーブルのステータスを表示"))
{$msgs[]="データベース構造の読み取り中にエラーが発生しました"; $sql=""; $p=1;
$filename=date("ymd",time())."_all";
while($d->nextrecord($tables))
{
$table=$d->f("名前");
$sql.=make_header($table);
$d->query("select * from $table");
$num_fields=$d->nf();
while($d->nextrecord())
{$sql.=make_record($table,$num_fields);
if(strlen($sql)>=$_post['ファイルサイズ']*1000){
$filename.=("_v".$p.".sql");
If(write_file($sql,$filename))
$msgs[]="すべてのデータ テーブル-ボリューム-".$p."-データのバックアップが完了しました。バックアップ ファイル '$backup/$filename'" が生成されました;
else $msgs[]="バックアップテーブル-".$_post['テーブル名']."-失敗";
$p++;
$filename=date("ymd",time())."_all";
$sql="";}
}
}
if($sql!=""){$ファイル名.=("_v".$p.".sql"); if(write_file($sql,$filename))
$msgs[]="すべてのデータ テーブル-ボリューム-".$p."-データのバックアップが完了しました。バックアップ ファイル '$backup/$filename'" が生成されました;}
show_msg($msgs);
/*----------巻終わり*/}/*--------------------- - -----------------*/
/*----------すべてのテーブルのバックアップの終了*/}/*---------------------------- ----- ---------------*/

/*----------単一テーブルをバックアップ-----*/elseif($_post['bfzl']=="danbiao"){/*---------- --*/
if(!$_post['テーブル名'])
{$msgs[]="バックアップするデータテーブルを選択してください";}
/*----------各巻に分割されていません*/if(!$_post['fenjuan']){/*-------- - ----------*/
$sql=make_header($_post['テーブル名']);
$d->query("select * from ".$_post['tablename']);
$num_fields=$d->nf();
while($d->nextrecord())
{$sql.=make_record($_post['テーブル名'],$num_fields);}
$filename=date("ymd",time())."_".$_post['tablename'].".sql";
if($_post['weizhi']=="localpc") down_file($sql,$filename);
elseif($_post['weizhi']=="サーバー")
{if(write_file($sql,$filename))
$msgs[]="Table-".$_post['tablename']."-データのバックアップが完了し、バックアップ ファイル '$backup/$filename'" が生成されます;
else $msgs[]="バックアップテーブル-".$_post['テーブル名']."-失敗";
show_msg($msgs);
ページエンド();
}
/*----------------ロールを終了しないでください*/}/*--------------------- --- ----------*/
/*----------------ボリューム*/else{/*---------------------- - ---------------*/
if(!$_post['filesize'])
{$msgs[]="バックアップ ファイルのボリューム サイズを入力してください"; $sql=make_header($_post['テーブル名']); $filename=date("ymd",time())."_".$_post['テーブル名'];
$d->query("select * from ".$_post['tablename']);
$num_fields=$d->nf();
while ($d->nextrecord())
{
$sql.=make_record($_post['テーブル名'],$num_fields);
If(strlen($sql)>=$_post['ファイルサイズ']*1000){
$filename.=("_v".$p.".sql");
If(write_file($sql,$filename))
$msgs[]="Table-".$_post['tablename']."- Volume-".$p."-データのバックアップが完了し、バックアップ ファイル '$backup/$filename'" が生成されます;
else $msgs[]="バックアップテーブル-".$_post['テーブル名']."-失敗";
$p++;
$filename=date("ymd",time())."_".$_post['テーブル名'];
$sql="";}
}
if($sql!=""){$ファイル名.=("_v".$p.".sql"); if(write_file($sql,$filename))
$msgs[]="Table-".$_post['tablename']."- Volume-".$p."-データのバックアップが完了し、バックアップ ファイル '$backup/$filename'" が生成されます。}
show_msg($msgs);
/*----------巻末*/}/*---------------------------- -- ------------------*/
/*----------バックアップ単一テーブルの終了*/}/*---------------------------- ---- ------------------*/

/*---*/}/*---------------メインプログラム終了---------------------- - ------------------*/

関数 write_file($sql,$filename)

{

$re=true;

グローバル $バックアップ;
if(!@$fp=fopen($backup."/".$filename,"w+")) {$re=false; echo "ターゲット ファイルを開けませんでした";}
if(!@fwrite($fp,$sql)) {$re=false; echo "ファイルの書き込みに失敗しました";}
if(!@fclose($fp)) {$re=false; echo "ターゲット ファイルを閉じることができませんでした";}
$re を返します;
}

関数 down_file($sql,$filename)
{

ob_end_clean();

header("コンテンツエンコーディング: なし");
header("content-type: ".(strpos($_server['http_user_agent'], 'msie') ? 'application/octetstream' : 'application/octet-stream'));

header("content-disposition: ".(strpos($_server['http_user_agent'], 'msie') ? 'inline; ' : 'attachment; ')."filename=".$filename);

header("content-length: ".strlen($sql));
header("プラグマ: キャッシュなし");

header("有効期限: 0");
エコー $sql;
$e=ob_get_contents();
ob_end_clean();
}

書き込み可能な関数($dir)
{

if(!is_dir($dir)) {
@mkdir($dir, 0777);

}


if(is_dir($dir))
{

if($fp = @fopen("$dir/test.test", 'w'))
{

@fclose($fp);

@unlink("$dir/test.test");
$書き込み可能 = 1;
}
他に{
$書き込み可能 = 0;
}

}

$writeable を返す;

}

関数 make_header($table)

{グローバル $d;

$sql="存在する場合はテーブルを削除 ".$table."n";

$d->query("show create table ".$table);
$d->nextrecord();
$tmp=preg_replace("/n/","",$d->f("テーブルの作成"));
$sql.=$tmp."n";
$sql を返します;
}

関数 make_record($table,$num_fields)
{グローバル $d;
$comma="";
$sql .= "「.$table.」に挿入します。values(";
for($i = 0; $i {$sql .= ($comma."'".mysql_escape_string($d->record[$i])."'"); $comma = ",";}
$sql .= ")n";
$sql を返します;
}

関数 show_msg($msgs)
{
$title="ヒント:";
echo " echo "

";
echo "

esWeb システム データのバックアップ
バックアップ方法を選択 すべてのデータをバックアップします
単一のテーブル データをバックアップします
ターゲットの場所を選択 サーバーにバックアップします
ローカルにバックアップ
ボリューム バックアップを使用
分割ボリューム バックアップk (バックアップを選択した場合のみ分割ボリュームを使用できます)サーバーへのバックアップ機能)
プログラムの説明 1. より大きなデータ テーブルの場合は、ボリューム バックアップを使用することを強くお勧めします。
2. ボリューム バックアップ機能は、サーバーへのバックアップを選択した場合にのみ使用できます。
="リセット" 値="リセット" クラス="ボタン" />
".$title."

    ";
    while (list($k,$v)=each($msgs))
    {
    echo "
  • ".$v."
  • ";
    }
    echo "
";
}

関数 pageend()
{
exit();
}
?>





クラスデータベース{

var $linkid;
var $sqlid;
var $record;

関数 db($host="",$username="",$password="",$database="")
{
if(!$this->linkid) @$this->linkid = mysql_connect($host, $username, $password) または die("连接服务器失败.");
@mysql_select_db($database,$this->linkid) または die("無法打开データベース库");
$this->リンクIDを返す;}

関数クエリ($sql)
{if($this->sqlid=mysql_query($sql,$this->linkid)) return $this->sqlid;
他に{
    $this->err_report($sql,mysql_error);
false を返します;}
}

関数nr($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
return mysql_num_rows($sql_id);}

関数 nf($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
return mysql_num_fields($sql_id);}

関数 nextrecord($sql_id="")
{if(!$sql_id) $sql_id=$this->sqlid;
if($this->record=mysql_fetch_array($sql_id)) return $this->record;
それ以外の場合は false を返します;
}

関数 f($name)
{
if($this->record[$name]) return $this->record[$name];
それ以外の場合は false を返します;
}

関数 close() {mysql_close($this->linkid);}

関数ロック($tblname,$op="write")
{if(mysql_query("ロック テーブル ".$tblname." ".$op)) true を返します。それ以外の場合は false を返します;}

機能ロック解除()
{if(mysql_query("テーブルのロック解除")) true を返します。それ以外の場合は false を返します;}

関数 ar() {
      return @mysql_affected_rows($this->linkid);
    }

関数 i_id() {
    mysql_insert_id() を返す;
}

関数 err_report($sql,$err)
{
echo "mysql查询错误
";
echo "查询语句:".$sql."
";
echo "错误情報:".$err;
}
/**************************************授業終了********** * *****************/


グローバル $mysqlhost、$mysqluser、$mysqlpwd、$mysqldb、$backup;
$mysqlhost = $mydbhost;          //ホスト名
$mysqluser = $mydbuser;          //ログイン名
$mysqlpwd = $mydbpw;             //パスワード
$mysqldb = $mydbname;            //データベースの名前

$d=新しいデータベース($mysqlhost,$mysqluser,$mysqlpwd,$mysqldb);
$d->query("名前を設定 'utf8'");

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/630798.html技術記事 php mysql データ库备份程序/*一款例を提供する php mysql データ库备份程序、優れた方法でオンラインで実行できるデータベース库を保存できる...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL:初心者向けのデータ管理の容易さ MySQL:初心者向けのデータ管理の容易さ Apr 09, 2025 am 12:07 AM

MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICATでデータベースパスワードを取得できますか? NAVICATでデータベースパスワードを取得できますか? Apr 08, 2025 pm 09:51 PM

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

Navicatプレミアムの作成方法 Navicatプレミアムの作成方法 Apr 09, 2025 am 07:09 AM

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません Apr 08, 2025 pm 11:00 PM

NAVICATがデータベースとそのソリューションに接続できない一般的な理由:1。サーバーの実行ステータスを確認します。 2。接続情報を確認します。 3.ファイアウォール設定を調整します。 4.リモートアクセスを構成します。 5.ネットワークの問題のトラブルシューティング。 6.許可を確認します。 7.バージョンの互換性を確保します。 8。他の可能性のトラブルシューティング。

NavicatでMySQLへの新しい接続を作成する方法 NavicatでMySQLへの新しい接続を作成する方法 Apr 09, 2025 am 07:21 AM

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

Navicatは、データベースエラーコードとソリューションに接続します Navicatは、データベースエラーコードとソリューションに接続します Apr 08, 2025 pm 11:06 PM

データベースに接続するときの一般的なエラーとソリューション:ユーザー名またはパスワード(エラー1045)ファイアウォールブロック接続(エラー2003)接続タイムアウト(エラー10060)ソケット接続を使用できません(エラー1042)SSL接続エラー(エラー10055)接続の試みが多すぎると、ホストがブロックされます(エラー1129)データベースは存在しません(エラー1049)

NAVICATでSQLを実行する方法 NAVICATでSQLを実行する方法 Apr 08, 2025 pm 11:42 PM

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

NavicatのローカルMySQLに接続する方法 NavicatのローカルMySQLに接続する方法 Apr 09, 2025 am 07:45 AM

NAVICATを使用してローカルMYSQLデータベースに接続するには:接続を作成し、接続名、ホスト、ポート、ユーザー名、およびパスワードを設定します。接続をテストして、パラメーターが正しいことを確認します。接続を保存します。接続リストから新しい接続を選択します。接続するデータベースをダブルクリックします。

See all articles