MySQL Dump

Door Arian Stolwijk, 15 jaar geleden, 7.129x bekeken

Met dit script kan je dus een sql dump maken, die veel lijkt op die van phpMyAdmin. Het is bijvoorbeeld handig als je een backup functie moet maken voor je (zelfgemaakte) systeem.

Het origineel komt van http://www.webcheatsheet.com/php/export_database_schema_xml.php, maar dit is naar xml, en ik heb hem dus als Sql laten exporteren, verder heb ik auto_increment toegevoegd, en heb ik alle rijen van de tabellen ook latten exporteren. Dus eigenlijk heb ik wel vrij veel aangepast;).

Gesponsorde koppelingen

PHP script bestanden

  1. mysql-dump

 

Er zijn 8 reacties op 'Mysql dump'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jonathan Dequeker
Jonathan Dequeker
15 jaar geleden
 
0 +1 -0 -1
ziet er leuk uit
Zero Dead
Zero Dead
15 jaar geleden
 
0 +1 -0 -1
Quote:
// Als het een numerieke waarde is hoeven er géén quotes omheen


En als dit nou eens ENUM veld is? Volgens mij werkt het dan niet (goed) als je dan geen quotes gebruikt...

Verder leuk script, maar werkt deze ook goed en snel (genoeg) met grote databases?
Frank -
Frank -
15 jaar geleden
 
0 +1 -0 -1
De naam van het script is inderdaad goed gekozen, het dumpen van MySQL is het beste wat je kunt doen! ;)

Wat het script betreft, ga wel overal controleren of de queries zijn gelukt. Het zou lullig zijn als jouw dump/backup niet goed is, maar dat je daar pas achter komt wanneer je hem nodig hebt.
Arian Stolwijk
Arian Stolwijk
15 jaar geleden
 
0 +1 -0 -1
Tja, of het met hele grote database zou werken van weet ik het 10 mb ofzo, ik weet het, zover heb ik het nog niet getest.

Ik heb het eigenlijk alleen getest op een database met 11 tabellen, in totaal 39,7 KB, en 172 records. En dat werkte op mijn localhost vrij snel... ik hoefde in ieder geval niet te wachten op het laden oid, maar dat verwacht ik bij zo'n database eigenlijk ook nog niet echt :P

En of het werkt met ENUM velden...Ik heb het net even getest (met ENUM('1','0'), en bij mij werkt het in ieder geval wel, maar mocht het bij jou niet werken kan je altijd nog wel, mits je een beetje kunt php'en, het zo aanpassen dat hij bij ENUM er wél quotes omheen zet, of gewoon overal quotes omheen zet, dat je die is_numeric eruit haalt... maar dat is dan eigenlijk niet helemaal correct... (numerieke waarden horen namelijk zonder quotes hè ;) )
Lissy Pixel
Lissy Pixel
15 jaar geleden
 
0 +1 -0 -1
Superhandig idd als je een eigengemaakt systeem hebt :)
Bedankt voor het delen!
Rolf Flikker op
Rolf Flikker op
15 jaar geleden
 
0 +1 -0 -1
Voor grote databases is een formaat als csv (i.c.m. een script om csv naar MySQL queries om te toveren) misschien handiger. Maar voor de kleine databases ziet dit er goed uit. Bedankt voor het delen.
 
0 +1 -0 -1
Ikzelf gebruik een eigengemaakt script, i.c.m. webcron.org.

Erg handig, je hebt van elke dag backups, welke ik zelf eens per 3 dagen download, en op 3 verschillende locaties bewaar, i.c.m. file- & configuratiebackups.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
CompuChip
CompuChip
15 jaar geleden
 
0 +1 -0 -1
Handig scriptje, dat scheelt me weer wat werk. Nog wel twee kleine dingetjes...

1) Als je tekstvelden gebruikt waarin enkele quotes (') kunnen voorkomen, moet je regel 60,
$output .= "'".$ins[$i]."'";
(waarboven staat "Anders dus wel") vervangen door
$output .= "'".str_replace("'","\'",$ins[$i])."'";

2) Als je gebruik maakt van primary keys met meerdere velden, zijn er iets meer aanpassingen nodig:
a) Zoek de regel
// Teller beginnen
$i = 0;
en voeg direct daaronder toe:
// Maak primary key velden leeg
$prim = array();

b) Vervang regel 36 tot en met 43,
// Als het veld een primary key is
if($row1[3] == 'PRI'){
$output .= "\t\tPRIMARY KEY (".$row1[0].")";
// Als dit niet het laatste is, nog een komma erachter zetten
if($aant != $i){
$output .= ",\n";
}
}

door
// Als het veld een primary key is
if($row1[3] == 'PRI'){
array_push($prim, $row1[0]);
}

c) Zoek naar
// Create table afsluiten
en voeg direct daarBOVEN toe
// Als er velden in de Primary Key zitten, deze toevoegen
if(count($prim)){
$output .= "\n\t\t, PRIMARY KEY (".implode(',',$prim).")";
}

Verder missen er nog wat kleine dingetjes (backslashes worden niet ge-escaped, bijvoorbeeld) maar voor de rest is het een erg bruikbaar scriptje, thanks Arian!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. mysql-dump

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.