salah Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Hei. Jeg fant ikke noen andre steder å poste dette så jeg poster det her Har noen peiling på hvilken kommando man må bruke for å slette en hel MySQL database? Jeg har over 200 tables og det er slitsomt å slette alt manualt. Takk for svar Lenke til kommentar
Lokaltog Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Hvis det er en DATABASE du vil slette, bruk denne kommandoen: DROP DATABASE db Du må ha DROP-privilege for å gjøre dette. Lenke til kommentar
diskvask Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Oops, en liten skivebom, hehe. Lenke til kommentar
salah Skrevet 23. juli 2004 Forfatter Del Skrevet 23. juli 2004 Nei det var ikke slik jeg mente. Jeg beklager for å ha forklart dårlig. Jeg skal slette alle tabeller inni den Hvordan gjør jeg det? Lenke til kommentar
Lurifaksen Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Kanskje ikke lærerikt, men hva med å slette databasen og opprette den på nytt? Lenke til kommentar
Lokaltog Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Hvis ikke må du mekke en loop i PHP som går gjennom hver eneste tabell i databasen og dropper den.. Ikke noen stor jobb, men det er lettere å slette en database og opprette den på nytt.. Lenke til kommentar
LoS Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Kan man ikke bare bruke DELETE FROM `tabell` ? Lenke til kommentar
ZoRaC Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 LoS: Da slettes jo ikke tabellene... Lenke til kommentar
marcen Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 (endret) function mysql_empty_db($dbname){ $result = mysql_list_tables($dbname) or die("Feil i spørring 1: " . mysql_error()); $num = 1; while ($row = mysql_fetch_row($result)) { $l_query = "DROP TABLE '" . $row[0] . "'; $l_result = mysql_query($l_query); if(!$l_result){ $return[error][] = "Feil under sletting av tabell ".$num.": " . mysql_error()); } $num++; unset($l_query, $l_result); } if(count($return[error]) >= 1){ $return[result] = FALSE; } else { $return[result] = TRUE; } return $return; } Den returnerer i et array, hvor $var[result] er TRUE eller FALSE, og hvis FALSE er $var[error] fylt med feil. Kalles forresten ved å skrive mysql_empty_db("Databasenavn"); Man kan sjakke om den funket ved å skrive $e_db = mysql_empty_db("Databasenavn"); if(!$e_db[result]){ echo "Feil under sletting av tabeller<br />"; for($i = 0; count($e_db[error]) > $i; $i++;){ echo $e_db[error][$i] . "<br />"; } } else { echo "Tabeller slettet"; } edit: Er ikke sikker på den for loopen, har ikke brukt for på jævlig lenge. Endret 23. juli 2004 av marcen Lenke til kommentar
salah Skrevet 23. juli 2004 Forfatter Del Skrevet 23. juli 2004 takker for svara alle sammen. Marcen: Hvordan setter jeg sammen den koden? Og hvordan utføres den? Takker for hjelp. Lenke til kommentar
marcen Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 Du paster den øverste og den nederste koden i en PHP-fil, som er koblet til MySQL, og kjører PHP-filen. Lenke til kommentar
LoS Skrevet 23. juli 2004 Del Skrevet 23. juli 2004 (endret) LoS: Da slettes jo ikke tabellene... hehe, glemte det edit: sakset litt ut ifra php.net: <?php $dbname = 'databasenavn'; if (!mysql_connect('localhost', 'brukernavn', 'passord')) { echo 'Could not connect to mysql'; exit; } $result = mysql_list_tables($dbname); if (!$result) { echo "DB Error, could not list tables\n"; echo 'MySQL Error: ' . mysql_error(); exit; } while ($row = mysql_fetch_row($result)) { if(mysql_query("DROP TABLE ".$row[0]."")){ echo "Table: $row[0] deleted<br />\n"; } else { echo "Table: $row[0] not deleted<br />\n"; } } mysql_free_result($result); ?> Endret 23. juli 2004 av LoS Lenke til kommentar
salah Skrevet 23. juli 2004 Forfatter Del Skrevet 23. juli 2004 Takker for svara, nå er det løst Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå