Télécharger le zip
Pratique avant de faire une modif risquéeCa marche lorsqu'on à droit qu'a 1 base de données ?
Ze demanderais : est-ce que ça marche comme phpmyadmin ou comme eskuel ??Pcqe phpmyadmin dès que la base fait plus d'1Mo ça se chie dessus :P
ah bon ça chie au dessus d'1 Mo ?tu m'inkiètes là parce que ma base chez free fait facilement 800 ko actuellement et ça va grOssir
en tout cas, je viens de tester ce code sur une base de 1.3 Mo, et ca marche niquel. Merci pour ce code
Merci pour le code, très utile!
Trop mortel !! super pratique en cas de modif :) 10/10
modif pour ne pas avoir insert into répéter à chaque fois :function get_table_content($db, $table){ $result = mysql_db_query($db, "SELECT * FROM $table") or mysql_die(); $i = 0; $no_passage = 1 ; $row = mysql_fetch_row($result) ; while($row) { $table_list = "("; for($j=0; $j<mysql_num_fields($result);$j++) { $table_list .= mysql_field_name($result,$j).", "; } $table_list = substr($table_list,0,-2); $table_list .= ")"; if ($no_passage == 1) { if(isset($GLOBALS["showcolumns"])) { $schema_insert = "INSERT INTO $table $table_list VALUES ("; } else { $schema_insert = "INSERT INTO $table VALUES ("; } } else { $schema_insert = "(" ; } $no_passage ++ ; for($j=0; $j<mysql_num_fields($result);$j++) { if(!isset($row[$j])) { $schema_insert .= " NULL,"; } elseif($row[$j] != "") { $schema_insert .= " '".addslashes($row[$j])."',"; } else { $schema_insert .= " '',"; } } $schema_insert = ereg_replace(",$", "", $schema_insert); $schema_insert .= ")"; $row = mysql_fetch_row($result) ; if ($row) { echo trim($schema_insert).","; } else { echo trim($schema_insert).";"; } $i++; } return (true);}
justement, le seul endroit où g eu un problème avec une GROSSE table (4 méga), c pas dans l'export vers .SQL mais dans l'import.Si je met dans phpmyadmin "insertion étendues" (= ne répète pas les insert into) ça met trop de temps pour faire la requête et ça plante. Si je met pas les insertion étendues çà fait pleins de requêtes mais ça passe !
est'il possible, dans le meme principe, de faire un update de la base de donnée, autrement dit de faire le contraire, de mon disque dur au serveur ?!?
Protéger les noms des tables et des champs par des "`" peut se retrouver utile.C'est une bete modif des 2 fonctions:function get_table_structure($db, $table){ global $drop; $schema_create = ""; if(!empty($drop)) $schema_create .= "DROP TABLE IF EXISTS `$table`;\n"; $schema_create .= "CREATE TABLE `$table` (\n"; $result = mysql_db_query($db, "SHOW FIELDS FROM `$table`") or mysql_die(); while($row = mysql_fetch_array($result)) { $schema_create .= " `$row[Field]` $row[Type]"; if(isset($row["Default"]) && (!empty($row["Default"]) || $row["Default"] == "0")) $schema_create .= " DEFAULT '$row[Default]'"; if($row["Null"] != "YES") $schema_create .= " NOT NULL"; if($row["Extra"] != "") $schema_create .= " $row[Extra]"; $schema_create .= ",\n"; } $schema_create = ereg_replace(",\n$", "", $schema_create); $result = mysql_db_query($db, "SHOW KEYS FROM `$table`") or mysql_die(); while($row = mysql_fetch_array($result)) { $kname=$row['Key_name']; if(($kname != "PRIMARY") && ($row['Non_unique'] == 0)) $kname="UNIQUE|$kname"; if(!isset($index[$kname])) $index[$kname] = array(); $index[$kname][] = $row['Column_name']; } while(list($x, $columns) = @each($index)) { $schema_create .= ",\n"; if($x == "PRIMARY") $schema_create .= " PRIMARY KEY (" . implode($columns, ", ") . ")"; elseif (substr($x,0,6) == "UNIQUE") $schema_create .= " UNIQUE ".substr($x,7)." (" . implode($columns, ", ") . ")"; else $schema_create .= " KEY $x (" . implode($columns, ", ") . ")"; } $schema_create .= "\n)"; return (stripslashes($schema_create));}function get_table_content($db, $table){ $result = mysql_db_query($db, "SELECT * FROM $table") or mysql_die(); $i = 0; while($row = mysql_fetch_row($result)) { $table_list = "("; for($j=0; $j<mysql_num_fields($result);$j++) $table_list .= "`".mysql_field_name($result,$j)."`, "; $table_list = substr($table_list,0,-2); $table_list .= ")"; if(isset($GLOBALS["showcolumns"])) $schema_insert = "INSERT INTO`$table` $table_list VALUES ("; else $schema_insert = "INSERT INTO `$table` VALUES ("; for($j=0; $j<mysql_num_fields($result);$j++) { if(!isset($row[$j])) $schema_insert .= " NULL,"; elseif($row[$j] != "") $schema_insert .= " '".addslashes($row[$j])."',"; else $schema_insert .= " '',"; } $schema_insert = ereg_replace(",$", "", $schema_insert); $schema_insert .= ")"; echo trim($schema_insert).";\n"; $i++; } return (true);}
bonjour, je trouve ce script très sympa, cependant j'ai un problème au niveau de l'enrgistrement en local... Je n'arrive pas à enregistrer ma base en .sql......comment fait-on... il me dit obligatoirement d'enregsitrer ça au format html.....merci d'avance!!
le script marche super bienmerci beaucoupseulement j'aurais besion que le script s'enregistre tout seul à un endroitmerci
Super!G passer deux heures a chercher un script SIMPLE pour télécharger ma db cotidiennement!Bravo!NB: pour uploader des grosse pas de donnée je vous conseil http://www.ozerov.de/bigdump.php C très simple.
bip bilip bip bip >>> Nouvelle de dernière heure: Ce script fonctionne à merveille sur PHP5
Fonctionne très bien et il est très simple, bravo.
Ne fonctionne pas sur PHP 5.2.6
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte
1 872 930 membres 90 nouveaux aujourd'hui 16 151 membres club