是否有更快的方法将记录从 Access 数据库复制到 SQL 数据库?
目前我一次检索一条记录并将其插入到 SQL 中,但这需要很长时间。我知道有“SELECT INTO tbl_name”,但据我所知,这仅在查询位于“发送”数据库(在本例中为 Access db)中时才有用。
我目前的代码是:
if (isset($_POST['odbc_connect'])){
$odbc_conn = $_POST['odbc_connect'];
}else{
exit ($noODBC);
}
$conn=odbc_connect($odbc_conn,'','') or die ($errorODBC);
$shell = new COM("WScript.Shell");
$odbcServer = $shell->RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\ODBC\\ODBC.INI\\JuniorDSN\\DBQ");
$sql="SELECT * FROM [Cost Centre Hierarchy]";
$rs=odbc_exec($conn,$sql);
// Connect to your database
mysql_select_db($database_budgetstatementconnection, $budgetstatementconnection);
// Delete contents of table
$sql = "TRUNCATE TABLE tblcostcentrehierarchy";
mysql_query($sql) or die ( mysql_error() );
while (odbc_fetch_row($rs))
{
// Retrieve the record from Junior
$strCostCentre = odbc_result($rs,1);
$strCCDescription = odbc_result($rs,2);
$enabled = odbc_result($rs,3);
$path = odbc_result($rs,4);
$level1 = odbc_result($rs,5);
$level2 = odbc_result($rs,6);
$level3 = odbc_result($rs,7);
$level4 = odbc_result($rs,8);
$level5 = odbc_result($rs,9);
$level6 = odbc_result($rs,10);
$level7 = odbc_result($rs,11);
$level8 = odbc_result($rs,12);
// Parse the data
$strCCDescription = str_replace("'","\'",$strCCDescription);
$strCCDescription = str_replace('"',"",$strCCDescription);
$level1 = str_replace("'","\'",$level1);
$level1 = str_replace('"',"",$level1);
$level2 = str_replace("'","\'",$level2);
$level2 = str_replace('"',"",$level2);
$level3 = str_replace("'","\'",$level3);
$level3 = str_replace('"',"",$level3);
$level4 = str_replace("'","\'",$level4);
$level4 = str_replace('"',"",$level4);
$level5 = str_replace("'","\'",$level5);
$level5 = str_replace('"',"",$level5);
$level6 = str_replace("'","\'",$level6);
$level6 = str_replace('"',"",$level6);
$level7 = str_replace("'","\'",$level7);
$level7 = str_replace('"',"",$level7);
$level8 = str_replace("'","\'",$level8);
$level8 = str_replace('"',"",$level8);
$level8 = trim(preg_replace('/\n\r|\r\n/', "", $level8 ));
// Save the record to the database
$sql = "insert into `budgetstatements`.`tblcostcentrehierarchy` (`CostCentreCode`, `CostCentreDescription`, `Enabled`, `Path`, `Level1`, `Level2`, `Level3`, `Level4`, `Level5`, `Level6`, `Level7`, `Level8`) values ('".$strCostCentre."', '".$strCCDescription."', '".$enabled."', '".$path."', '".$level1."', '".$level2."', '".$level3."', '".$level4."', '".$level5."', '".$level6."', '".$level7."', '".$level8."')";
// Execute the sql
mysql_query($sql);
}
//Close the connections
odbc_close($conn);
mysql_close($budgetstatementconnection);