Exporter vers un fichier sql et l'importation à la nouvelle base de données.
Dans phpMyAdmin cliquez sur la base de données que vous souhaitez exporter, cliquez sur export, vérifiez enregistrer en tant que fichier, puis aller.
télécharger ensuite à la nouvelle base de données que vous souhaitez dupliquer les données.
Dans un sens PHP strict, la seule façon que je pouvais penser à faire serait d'être l'utilisation de SHOW TABLES
et describe {$table}
Pour renvoyer tous les noms de champ et les structures des enregistrements, analysez cela, créez vos instructions create table
, puis parcourez chaque table et créez des instructions insert
.
Je crains que le mieux que je puisse faire pour vous est une sorte de prototype Code que j'imagine serait incroyablement serveur intensif, ce qui est pourquoi je vous recommande d'aller un autre itinéraire.
Quelque chose comme:
<?php
// connect to first DB
$tables = mysql_query("SHOW TABLES") or die(mysql_error());
while ($row = mysql_fetch_assoc($tables)) {
foreach($row as $value) {
$aTables[] = $value;
}
}
$i = 0;
foreach ($aTables as $table) {
$desc = mysql_query("describe " . $table);
while ($row = mysql_fetch_assoc($desc)) {
$aFields[$i][] = array($row["Field"],$row["Type"],$row["Null"],$row["Key"],$row["Default"],$row["Extra"]);
}
$i++;
}
// connect to second DB
for ($i = 0; $i < count($aTables); $i++) {
// Loop through tables, fields, and rows for create table/insert statements
$query = 'CREATE TABLE IF NOT EXISTS {$aTables[$i]} (
//loop through fields {
{$aFields[$i][$j][0]} {$aFields[$i][$j][1]} {$aFields[$i][$j][2]} {$aFields[$i][$j][3]} {$aFields[$i][$j][4]} {$aFields[$i][$j][5]},
{$aFields[$i][$j][0]} {$aFields[$i][$j][1]} {$aFields[$i][$j][2]} {$aFields[$i][$j][3]} {$aFields[$i][$j][4]} {$aFields[$i][$j][5]},
{$aFields[$i][$j][0]} {$aFields[$i][$j][1]} {$aFields[$i][$j][2]} {$aFields[$i][$j][3]} {$aFields[$i][$j][4]} {$aFields[$i][$j][5]},
{$aFields[$i][$j][0]} {$aFields[$i][$j][1]} {$aFields[$i][$j][2]} {$aFields[$i][$j][3]} {$aFields[$i][$j][4]} {$aFields[$i][$j][5]},
etc...
}
)';
//loop through data
$query .= 'INSERT INTO {$aTables[$i]} VALUES';
$result = mysql_query("SELECT * FROM " . $aTables[$i]);
while ($row = mysql_fetch_assoc($result)) {
$query .= '(';
foreach ($aFields[$i][0] as $field) {
$query .= '"{$row[$field]}",';
}
$query .= '),';
}
mysql_query($query);
}
?>
Ceci est basé sur des this script qui peut être utile pour référence.
J'espère que c'est quelque chose pour vous aider à démarrer, mais je vous suggère de chercher une alternative non PHP.
Voir cette question: http://stackoverflow.com/questions/3932608/how-to-copy- a-table-de-un-mysql-base de données-à-autre-mysql-base de données –