Realize the import and export of data and the import and export of data table structure
**************************** ******************************/
Operation file . 🎜> // private $ DefaultPath;
//
private $db;
require(" config.inc.php");
if(!$_DatabaseName) {$this->DatabaseName=$dbName;}
else {$this->DatabaseName=$_DatabaseName;}
>DefaultPath) ; $this->DefaultPath=str_replace("","/",$path); =new MysqlDB(); } /************************************ ************************
**Method name: GetTablesName
**Function description: Get all data tables of $this->Database Name
**Input parameters: None
**Output parameters: None
**Return value: -array <$this->TablesName:$this->All data tables of the Database Name>
**Author: Lin Chaoqi
**Day Issue: 2007-04-09
**Modifier:
**Day Issue:
********************************************************/
protected function GetTablesName()
{
$result=$this->db->Query("show table status");
while($Row=$this->db->NextRecord($result))
{
$this->TablesName[]=$Row["Name"];
}
return $this->TablesName;
}
/***************************************************** ***
**Method name: GetDataFileName
**Function description: Get the physical file name of the data file corresponding to all data tables of $this->Database
**Input parameters: None 🎜>**Output parameters: None
**Return value: -array <$DataFilesName:$The physical file name of the data file corresponding to all data tables of $this->Database>
** Author: Lin Chaoqi
** day Issue: 2007-04-09
**Modifier:
** day Issue:
************ ********************************************/
protected function GetDataFileName()
{
$this->GetTablesName();
$count=count($this->GetTablesName());
for ($i=0;$i<$count;$i++)
{
$DataFilesName[]=$this->DefaultPath."/".$this->TablesName[$i].".txt";
//echo $DataFilesName[$i];
}
return $DataFilesName;
}
/***************************************************** ***
**Method name: SaveTableStructure
**Function description: Save the structure of the data table to the install.sql file, the target path is $DefaultPath
**Input parameters: None
* *Output parameters: None
**Return value:- bool
**Author: Lin Chaoqi
* *Date Issue: 2007-04-09
**Modifier:
**Date Issue:
************************ **********************************/
protected function SaveTableStructure($text)
{
$fileName=$this->DefaultPath."/Install.sql";
//if(file_exists($fileName))
//{
// unlink($fileName);
//}
//echo $text;
$fp=fopen($fileName,"w+");
fwrite($fp,$text);
}
/*******************************************************
**方 法 名:RestoreTableStructure
**功能描述:备份$this->Database中所有数据表的结构
**输入参数:无
**输出参数:无
**返 回 值:- bool<返回为true表示所有数据表的结构备份成功;
** 为false表示全部或部分数据表的结构备份失败>
**Author: Lin Chaoqi
**Day Issue: 2007-04-09
**Modifier:
**Day Issue:
************ **********************************************/ protected function BackupTableStructure()
$this->GetTablesName();
$count=count($ this->TablesName); this->TablesName[$i]; b->NextRecord( $result);
//
`".$tableName."`; ";//`
}
$sqlText=str_replace("r","",$sqlText);
ext=str_replace("'" ,"`",$sqlText);
$this->SaveTableStructure($sqlText);
}
/***************************************************** ***
**Method name: RestoreTableStructure
**Function description: Restore the structure of all data tables in $this->Database
**Input parameters: None
**Output parameters: None
**Return value:- bool
************** ******************************************/ structure()
{ $ FILENAME = $ this- & gt; defaultPath. "/Install.sql";
if (! File_exist ($ FILENAME)) {Echo "cannot find the table structure file, please confirm that you used to do it in the past. Backup!";exit;}
$fp=fopen($fileName,"r");
$sqlText=fread($fp,filesize($fileName));
// $sqlText=str_replace("r","",$sqlText);
//$sqlText=str_replace("n","",$sqlText); $sqlArray);
🎜> for($i=1;$i<$count; $i++)
$result=$this->db->ExecuteSQL($sql);
if(!
mysql
_errno())
The structure of data table ".($i/2)." was successfully restored !n";}
{
does not not not be the same? echo "data table".($i/2). "Structure recovery failed! n"; ->db->ShowError($e->getMessage());
}
}
/************************************************ *************Method name: ImportData**Function description: Import the data of all data tables in $this->Database from the .txt file with the same name, the source path is $DefaultPath
**Input parameters: None
**Output parameters: None
**Return value:- bool
**Author: Lin Chaoqi
** day Issue: 2007-04-09
**Modifier:
** day Issue:
****************** *******************************************/
function ImportData()
{
$DataFilesName=$this->GetDataFileName();
$count=count($this->TablesName);
//$this-> ;db->ExecuteSQL( "set character set gbk");
for ($i=0;$i<$count;$i++)
/ ",$DataFilesName[$i])
->TablesName[$i];
try > //$this->db->ExecuteSQL("SET NAMES 'utf8'") ;
($sqlLoadData);
return true; Data import was successful!"; to have return false;
/************************ **********************************
**Method name: ExportData
**Function description : Export the data of all data tables in $this->Database to a .txt file with the same name. The target path is $DefaultPath
**Input parameters: none Table data export failed>
**Author: Lin Chaoqi
**Day Issue:2007-04-09
**Modifier:
**Day Issue:
*************************************************** ******/
🎜> {
i]." into outfile '".$DataFilesName[$i]."'";
> );
🎜>}
// echo "The data export is successful!";
🎜> Catch (Exception $ E)
;ShowError($e->getMessage());
return false; }
> function BackupDatabase()
🎜> $this->ExportData();
return true;
}
catch (Exception $e)
{
$this->db->ShowError($e->getMessage());
return false;
exit();
}
}
/***************************************************** ***
**Method name: RestoreDatabase
**Function description: Restore the structure and data of all data tables in $this->Database
**Input parameters: None
**Output Parameters: None
**Return value:- bool
** Author: Lin Chaoqi
** day Issue: 2007-04-10
**Modifier:
** day Issue:
********** ********************************************/
function RestoreDatabase()
{
try
{
$this->RestoreTableStructure();
$this->ImportData();
return true;
}
catch (Exception $e)
{
$this->db->ShowError($e->getMessage());
return false;
exit();
}
}
}
?>[/php]