function comeback($sFile) { $rFile = fopen($sFile, 'r'); if (mysql_get_server_info() > '5.0.1') { $this->db->query("SET sql_mode=''", true); } while ($sTmp = fgetline($rFile)) { $sTmp = trim($sTmp); if ($sTmp != '' && substr($sTmp, 0, 1) != '#' && substr($sTmp, 0, 2) != '/*') { if (strpos($sTmp, 'cachemgr') && strpos($sTmp, 'INSERT INTO') === 0) { continue; } $sTmp = str_replace('{shopexdump_table_prefix}', DB_PREFIX, $sTmp); if (!defined("DB_OLDVERSION") || !DB_OLDVERSION) { $sTmp = str_replace('{shopexdump_create_specification}', ' DEFAULT CHARACTER SET utf8', $sTmp); } else { $sTmp = str_replace('{shopexdump_create_specification}', '', $sTmp); } if ($this->db->query($sTmp, true)) { continue; } else { echo 'Error:' . $sTmp . '<br>'; } } } fclose($rFile); }
$link = mysql_connect($dbHost, $dbUser, $dbPass, true) or die("Could not connect : " . mysql_error($link)); $bakfile = "data_" . $fileid . ".sql"; if (!file_exists($bakfile)) { echo "No back file exist else"; exit; } mysql_select_db($dbName, $link) or die("Could not select database"); if (mysql_get_server_info() > '5.0.1') { mysql_query("SET sql_mode=''", $link); } if (defined("MYSQL_CHARSET_NAME")) { mysql_query("SET NAMES '" . MYSQL_CHARSET_NAME . "'", $link); } $fp = fopen($bakfile, "r"); $i = 0; while (fgetline($fp, $buffer) !== false) { if (trim($buffer) != "" && substr($buffer, 0, 1) != "#") { $buffer = trim($buffer); if (substr(trim($buffer), -1) == ";") { $buffer = substr(trim($buffer), 0, strlen($buffer) - 1); } //替换前缀定义 $buffer = str_replace('{shopexdump_table_prefix}', $GLOBALS['_tbpre'], $buffer); if (defined("MYSQL_CHARSET_NAME")) { $buffer = str_replace('{shopexdump_create_specification}', ' DEFAULT CHARACTER SET ' . MYSQL_CHARSET_NAME, $buffer); } else { $buffer = str_replace('{shopexdump_create_specification}', '', $buffer); } if (!mysql_query($buffer, $link)) { echo mysql_error($link) . "<br>"; }
while (true) { $bakfile = "databack/mig_" . $_REQUEST["filename"] . "_" . $fileid . ".sql"; if (!file_exists($bakfile)) { rptout("数据库恢复完毕!所有迁移完成"); break; } mysql_select_db($dbName, $link) or die("Could not select database"); if (mysql_get_server_info() > '5.0.1') { mysql_query("SET sql_mode=''", $link); } if (defined("MYSQL_CHARSET_NAME")) { mysql_query("SET NAMES '" . MYSQL_CHARSET_NAME . "'", $link); } $fp = fopen($bakfile, "r"); $i = 0; while (($buffer = fgetline($fp)) !== false) { if (trim($buffer) != "" && substr($buffer, 0, 1) != "#") { $buffer = trim($buffer); if (substr(trim($buffer), -1) == ";") { $buffer = substr(trim($buffer), 0, strlen($buffer) - 1); } //替换前缀定义 $buffer = str_replace('{shopexdump_table_prefix}', $GLOBALS['_tbpre'], $buffer); if (defined("MYSQL_CHARSET_NAME")) { $buffer = str_replace('{shopexdump_create_specification}', ' DEFAULT CHARACTER SET ' . MYSQL_CHARSET_NAME, $buffer); } else { $buffer = str_replace('{shopexdump_create_specification}', '', $buffer); } if (!mysql_query($buffer, $link)) { echo mysql_error($link) . "<br>"; }