機能的に:
require_once("backdata.class.php");
$link = @mysql_connect("localhost","データベース名","パスワード") または die ('サーバーに接続できませんでした。') ;
mysql_query("use cms",$link);
mysql_query("set names utf8",$link);//それをインスタンス化します。リンク識別子で十分です
//データをバックアップするときに、データベース内のすべてのテーブルをバックアップしたい場合は、次のように記述できます:
$dbbck->backupTables("cms","./" , array('*'));
//データをバックアップする場合、データベース内の 1 つのテーブルのみをバックアップする場合は、次のように記述できます:
$dbbck->backupTables ("cms" ,"./",array('user'));
//データをバックアップするときに、データベース内の複数のテーブルをバックアップする場合は、次のように記述できます。 🎜>
$ dbbck->backupTables("cms","./",array('user','acl','informatoin'));
//注: $dbbck->backupTables ("パラメータ 1", "パラメータ 2", array());,
パラメータ 1 は次のとおりです: データベース名、
パラメータ 2 は次のとおりです: バックアップ データが保存される場所 (つまり、ディレクトリ アドレス)
3 つ目は次のとおりです。これらのテーブルを保存します。
ok...
コードは次のとおりです:
コードをコピーします コードは次のとおりです。
/*
*
*単純なバックアップ データ クラス
*author FC
*
*/
classbackupData{
private $mysql_link;//リンク識別
private $dbName;//データベース名
private $dataDir; //データが保存されるディレクトリ
private $tableNames;//テーブル名
public function __construct( $mysql_link){
$this->mysql_link = $mysql_link =
}
public function backupTables ($dbName,$dataDir,$tableNames){// バックアップを開始します
$this->dbName = $dbName
$this->dataDir = $dataDir; >tableNames = $tableNames;
$tables=$this-> ;delarray($this->tableNames);
foreach($tables as $tablename){
if($tablename==''){//テーブルが存在しません When
continue
}
//**************** ********以下は SQL の前半です**** **********
//テーブルが存在する場合は、まずテーブルを削除します
$sqls 。 = "DROP TABLE IF EXISTS $tablename;n";
//テーブル構造を読み取ります
$rs = mysql_query("SHOW CREATE TABLE $tablename",$this->mysql_link); =mysql_fetch_row($rs);
//SQL を形成するためのテーブル構造を取得します。
unset($rs); >unset($row);
//************ ************以下はSQLの後半です***** *********
//テーブル内のすべてのデータを検索します
$ rs=mysql_query("select * from $tablename",$this->mysql_link);テーブル内のフィールドの数
$field=mysql_num_fields($rs);
//次の SQL ステートメントを作成します: "INSERT INTO `groups` VALUES('1499e0ca25988d','Director','','0) ');"
while($rows=mysql_fetch_row($rs)){
$comma=' ';//Comma
$sqls.="INSERT INTO `$tablename` VALUES(";
for($i=0;$i$sqls.= $comma."'".$rows[$i]."'"; ',';
}
$sqls.=");nnn";
}
}
$backfilepath=$this->dataDir.date("Ymdhis",time( )).'.sql';
//ファイルを書き込みます
$filehandle = fopen($backfilepath , "w");
fwrite($filehandle, $sqls); );
}
private function delarray($array){//受信した配列を処理します
foreach($array as $tables){
if($tables=='*' ){//すべてのテーブル (テーブル名を取得する場合、通常の方法では配列を作成できません)
$newtables=mysql_list_tables($this->dbName,$this->mysql_link); tableList = array();
for ($i = 0; $i
array_push($tableList,mysql_tablename($newtables, $i)); >}
$tableList=$tableList;
}else{
$tableList=$array ;
}
return $tableList;
}