Dump SQL
Posté : 01 juil. 2008, 11:08
Bonjour.
J'ai trouvé sur le web un script PHP qui permets de faire un dump d'une base de données.
Donc si quelqu'un peut m'aider ou connait le script que je recherche, ce serait sympa.
D'avance merci
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