Gå til innhold

Hvordan slette en hel database?


Anbefalte innlegg

Skrevet

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 :)

Videoannonse
Annonse
Skrevet

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?

Skrevet

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..

Skrevet (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 av marcen
Skrevet

takker for svara alle sammen.

 

Marcen: Hvordan setter jeg sammen den koden? Og hvordan utføres den?

 

Takker for hjelp.

Skrevet (endret)
LoS: Da slettes jo ikke tabellene... :)

hehe, glemte det :p

 

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 av LoS

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...