Как я могу получить все данные из любой таблицы тестовой базы данных и DUMP ее на производственной базе данных с тем же именем таблицы (структура)?
Как я могу получить все данные из любой таблицы тестовой базы данных и DUMP ее на производственной базе данных с тем же именем таблицы (структура)? в Mysql с использованием кода PHP?
Пожалуйста, помогите мне..
РЕДАКТИРОВАТЬ
Мне нужен PHP, чтобы сделать это для меня, используя MySQL Queries
2 ответа
Извините, немного дезорганизован, но это функции, которые я использую для создания кода 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.