php mysql データベースのバックアップとデータ復元 class_PHP チュートリアル
説明: このタイプは、小規模な Web サイトのデータベースのバックアップに適しています。MYSQL 接続が組み込まれており、データ接続の簡単な設定のみが必要です。 * およびバックアップが保存される場所。 * クラスがインスタンス化され、データベースに接続された後、次の操作を実行できます。
php チュートリアル mysql チュートリアル データベース チュートリアル バックアップとデータ復元のクラス
/**
* このタイプは、mysql 接続が組み込まれており、データ接続の簡単な設定のみが必要なため、小規模な Web サイトのデータベースのバックアップに適していることに注意してください。
* およびバックアップが保存される場所。
* クラスがインスタンス化され、データベースに接続された後、次の操作を実行できます
* get_db_table($database) すべてのデータテーブルを取得します
* export_sql($table,$subsection=0)) SQL ファイルを生成します。生成された SQL ファイルはサーバー ディレクトリに保存されるだけで、ダウンロードには使用できないことに注意してください。
* import_sql($dir) 復元されたデータは、サーバー ディレクトリ内の SQL ファイルのみをインポートします
* このカテゴリは簡単に作成でき、自由に拡散できます。このカテゴリに関するご提案がございましたら、Xiaoxia までメールをお送りください。
* @著者のZhao Honjian[Youtian Xiaoxia]
*メール:328742379@qq.com
* QQ通信グループ: 69574955 Juyitang-ウェブページ制作通信
*/
クラスデータ{
; public $transfer =""; // SQL を一時的に保存します [この属性に値を割り当てないでください。そうでない場合、不正な SQL ステートメントが生成されます]*@param string $host データベースのホスト名
/**
*データベース接続*@param string $user ユーザー名
* @param $table バックアップするテーブル
*@param string $pwd パスワード
*@param string $db データベース名を選択します
*@param string $charset エンコード方式
*/
function connect_db($host,$user,$pwd,$db,$charset='gbk'){
if(!$conn = mysql_connect($host,$user,$pwd)){
false を返します;
}
mysql_select_db($db);
mysql_query("セット名 $charset");
true を返します;
}
/**
* SQL文を生成します* @return $tabledump
$rows = mysql_query("select * from $table");
によって生成されたSQL文 */
パブリック関数 set_sql($table,$subsection=0,&$tabledom=''){
$tabledom .= "$tablen が存在する場合はテーブルを削除";
$createtable = mysql_query("show create table $table");
$create = mysql_fetch_row($createtable);
$create[1] = str_replace("n","",$create[1]);
$create[1] = str_replace("t","",$create[1]);
$tabledom .= $create[1].";n";
$numfields = mysql_num_fields($rows);
$numrows = mysql_num_rows($rows);$n = 1;
*@return array $dbarray リストされたデータベーステーブル
$sqlarry = array();
while ($row = mysql_fetch_row($rows)){
$comma = "";
$tabledom .= "$table 値に挿入(";
for($i = 0; $i {
$tabledom .= $comma."'".mysql_escape_string($row[$i])."'";
$comma = ",";
}
$tabledom .= ")n";
If($subsection != 0 && strlen($this->transfer )>=$subsection*1000){
$sqlarry[$n]= $tabledom;
$テーブルダム = ''; }
}
$sqlarry を返します;
}
/**
*データベース内のテーブルを一覧表示します
*@param database $database 操作対象のデータベース名*/
パブリック関数 get_db_table($database){
$result = mysql_list_tables($database);
while($tmparry = mysql_fetch_row($result)){
$dbarry[] = $tmparry[0];
}
$dbarry を返します;
}/**
*ディレクトリが有効かどうかを確認してください
*@param ディレクトリ $dir
*@return booln
*/
関数 check_write_dir($dir){
if(!is_dir($dir)) {@mkdir($dir, 0777);}
if(is_dir($dir)){
if($link = opendir($dir)){
$filearry = scandir($dir);
for($i=0;$iIf($filearry[$i]!='.' || $filearry != '..'){
@unlink($dir.$filearry[$i]);
}
}
}
}
true を返します;
}
/**
*データをファイルに書き込む
*@param file $filename ファイル名
*@param string $str 書き込む情報
*@return booln 書き込みが成功した場合は true を返し、それ以外の場合は false を返します
*/
プライベート関数 write_sql($filename,$str){
$re= true;
if(!@$fp=fopen($filename,"w+")) {$re=false; echo "ファイルを開くときにエラーが発生しました。バックアップは失敗しました!";}
if(!@fwrite($fp,$str)) {$re=false; echo "情報の書き込み中にエラーが発生したため、バックアップに失敗しました!";}
if(!@fclose($fp)) {$re=false; echo "ファイルを閉じるときにエラーが発生しました。バックアップは失敗しました!";}
$re を返します;
}/**
*SQLファイルを生成します
*@param string $sql SQL ステートメント
*@param 番号 $subsection サブセクションのサイズ (kb 単位)、0 はサブセクションがないことを意味します
*/
パブリック関数export_sql($table,$subsection=0){
if(!$this->check_write_dir($this->data_dir)){echo '您没有权制限操作目录,备份失败';return false;}
if($subsection == 0){
if(!is_array($table)){
$this->set_sql($table,0,$this->transfer);
}その他{
for($i=0;$i$this->set_sql($table[$i],0,$this->transfer);
}
}
$filename = $this->data_dir.date("ymd",time()).'_all.sql';
if(!$this->write_sql($filename,$this->transfer)){return false;}
}その他{
if(!is_array($table)){
$sqlarry = $this->set_sql($table,$subsection,$this->transfer);
$sqlarry[] = $this->transfer;
}その他{
$sqlarry = array();
for($i=0;$i$tmparry = $this->set_sql($table[$i],$subsection,$this->transfer);
$sqlarry = array_merge($sqlarry,$tmparry);
}
$sqlarry[] = $this->transfer;
}
for($i=0;$i$filename = $this->data_dir.date("ymd",time()).'_part'.$i.'.sql';
if(!$this->write_sql($filename,$sqlarry[$i])){return false;}
}
}
true を返します;
}
/**
*SQLファイルをロードします
*@param ディレクトリ $dir
*@return booln
*注意: ディレクトリの下に他のファイルやディレクトリを保存しないでください
*回復時間を節約するため
*/
パブリック関数 import_sql($dir){
if($link = opendir($dir)){
$filearry = scandir($dir);
$pattern = "_part[0-9]+.sql$|_all.sql$";
for($i=0;$iif(エレギ($pattern,$filearry[$i])){
$sqls=file($dir.$filearry[$i]);
foreach($sqls as $sql){
str_replace("r","",$sql);
str_replace("n","",$sql);
if(!mysql_query(trim($sql))) return false;
}
}
}
true を返します;
}
}}
应用方法
//$d = 新しいデータ();
//连接データ库
//if(!$d->connect_db('localhost','root','','guestbook','gbk')){
// echo '数据库连接失败';
//}//查找データベース库内のすべてのデータテーブル
//$tablearry = $d->get_db_table('ゲストブック');//备份并生成sql文件
//if(!$d->export_sql($tablearry)){
// echo '备份失败';
//}その他{
// echo '备份成功';
//}//恢复导入sql文件夹
//if($d->import_sql($d->data_dir)){
// echo '恢复成功';
//}その他{
// echo '恢复失败';
//}

ホット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。他の可能性のトラブルシューティング。

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

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

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

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