如何從測試數據庫的任何表中提取所有數據並將其轉儲到相同表名(結構)中的生產數據庫中?在使用PHP代碼的Mysql中?如何從測試數據庫的任何表中提取所有數據並將其轉儲到相同表名(結構體)中的生產數據庫中?
請幫助我..
編輯
我需要PHP來使用MySQL查詢
如何從測試數據庫的任何表中提取所有數據並將其轉儲到相同表名(結構)中的生產數據庫中?在使用PHP代碼的Mysql中?如何從測試數據庫的任何表中提取所有數據並將其轉儲到相同表名(結構體)中的生產數據庫中?
請幫助我..
編輯
我需要PHP來使用MySQL查詢
對不起,有點雜亂無章,但這些是我用來構建SQL代碼的表重建和重新填充的功能。這全都在「表格」對象內,但我相信你可以拼湊出發生的事情。
SQL「SHOW CREATE TABLE yourtablename」爲您提供了再次創建表所需的所有內容。剩下的只是循環遍歷所有條目並創建INSERT語句。
public function backup() {
$output = "/* - - - Table recovery for $this->tablename - - - */\n\n\n";
$output .= "DROP TABLE IF EXISTS `$this->tablename`;\n\n";
$output .= $this->showcreate().';';
$output .= $this->showrepopulate();
return $output."\n\n\n";
}
final protected function showcreate() {
$result = $this->query("SHOW CREATE TABLE $this->tablename");
return $result[0]['Create Table'];
}
final protected function showrepopulate() {
$result = $this->query("SELECT * FROM $this->tablename");
$output = '';
$count = count($result);
if ($count) {
$output = "\n\nINSERT INTO `$this->tablename` VALUES\n";
for ($i=0; $i<$count; $i++) {
$output .= "(";
$numfields = count($result[$i]);
for ($j=0; $j<$numfields; $j++) {
if ($j>0) $output .= ',';
$output .= $this->Database->escape(array_shift($result[$i]));
}
$output .= ")";
$output .= ($i != $count-1) ? ",\n" : ';';
}
}
return $output;
}
爲我做這個,如果你傾倒創建SQL代碼來重新創建意思表,我會建議使用現有的工具來管理MySQL,如phpMyAdmin或Adminer。
我需要PHP來使用MySQL查詢 – 2010-04-22 07:00:37
如果你正使用InnoDB,問題中的表中的外鍵用於我這樣做,你可能要禁用導入前檢查外鍵(否則會失敗)。但是:確保你在導入之前檢查你的外鍵,因爲即使你重新打開foreign_key_checks,MySQL也會樂於接受不一致的數據。好的一面:你可以使用http://forge.mysql.com上的存儲過程/tools/tool.php?id=11在導入後檢查您的數據。 – wimvds 2010-04-22 08:07:24