J'ai trouvé sur le web un script PHP qui permets de faire un dump d'une base de données.
<?php
$db_base = "_nomdelabase";
header("Pragma: no-cache");
header("Content-Type: application/x-gzip; name=\"$db_base.sql.gz\"");
header("Content-Disposition: attachment;filename=\"$db_base.sql.gz\"");
header("Content-Transfer-Encoding: binary");
echo gzencode("--\n");
echo gzencode("-- Dump de la base $db_base\n");
echo gzencode("--\n");
$sql_tables = "SHOW TABLES";
$req_tables = mysql_query($sql_tables);
while (list($table) = mysql_fetch_row($req_tables)) {
echo gzencode("\n--\n-- Table $table\n\n");
echo gzencode("DROP TABLE IF EXISTS $table;\n");
$sql_create_table = "SHOW CREATE TABLE $table";
$req_create_table = mysql_query($sql_create_table);
$create_table = mysql_fetch_array($req_create_table);
echo gzencode($create_table[1].";\n");
echo gzencode("\n--\n-- Remplissage de $table\n\n");
$sql_fill_table = "SELECT * FROM $table";
$req_fill_table = mysql_query($sql_fill_table);
while ($row = mysql_fetch_assoc($req_fill_table)) {
$line_insert = "INSERT INTO $table (";
$l_value = ") VALUES (";
foreach ($row as $field => $value) {
$line_insert .= "`$field`, ";
$l_value .= "'".mysql_real_escape_string($value)."', ";
}
$line_insert = substr($line_insert, 0, -2);
$l_value = substr($l_value, 0, -2);
echo gzencode($line_insert.$l_value.");\n");
}
}
mysql_close();
?>
Ce script est très pratique, mais il génère un fichier .SQL assez lourd car il fait des insertions complètes du styleJe souhaiterai qu'il fasse des insertions étendues du styleINSERT INTO `table` (blablabla) VALUES(blablabla);
INSERT INTO `table` (blablabla) VALUES(blablabla);
INSERT INTO `table` (blablabla) VALUES(blablabla);
...
J'ai essayé de modifier le script en question, mais je crois que ça dépasse un peu mes compétencesINSERT INTO `table` VALUES
(blablabla),
(blablabla),
(blablabla),
...
Donc si quelqu'un peut m'aider ou connait le script que je recherche, ce serait sympa.
D'avance merci