salah Skrevet 23. juli 2004 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
Lokaltog Skrevet 23. juli 2004 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.
salah Skrevet 23. juli 2004 Forfatter 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?
Lurifaksen Skrevet 23. juli 2004 Skrevet 23. juli 2004 Kanskje ikke lærerikt, men hva med å slette databasen og opprette den på nytt?
Lokaltog Skrevet 23. juli 2004 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..
marcen Skrevet 23. juli 2004 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
salah Skrevet 23. juli 2004 Forfatter Skrevet 23. juli 2004 takker for svara alle sammen. Marcen: Hvordan setter jeg sammen den koden? Og hvordan utføres den? Takker for hjelp.
marcen Skrevet 23. juli 2004 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.
LoS Skrevet 23. juli 2004 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
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å