php 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">
";
esWeb システム データのバックアップ
バックアップ方法を選択
すべてのデータをバックアップします
単一のテーブル データをバックアップします
ターゲットの場所を選択
サーバーにバックアップします
ローカルにバックアップ
ボリューム バックアップを使用
分割ボリューム バックアップk (バックアップを選択した場合のみ分割ボリュームを使用できます)サーバーへのバックアップ機能)
プログラムの説明
1. より大きなデータ テーブルの場合は、ボリューム バックアップを使用することを強くお勧めします。
2. ボリューム バックアップ機能は、サーバーへのバックアップを選択した場合にのみ使用できます。
="リセット" 値="リセット" クラス="ボタン" />
表>
フォーム>
/*----*/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"){/*---------- --*/
関数 write_file($sql,$filename)
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);
/*----------巻末*/}/*---------------------------- -- ------------------*/
/*----------バックアップ単一テーブルの終了*/}/*---------------------------- ---- ------------------*/
/*---*/}/*---------------メインプログラム終了---------------------- - ------------------*/
{
$re=true;グローバル $バックアップ;
ob_end_clean();
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)
{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");
$writeable を返す;
$書き込み可能 = 1;
}
他に{
$書き込み可能 = 0;
}
}
}
関数 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 ""; ".$title."
echo "";
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'");

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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