Gå til innhold

Hvordan slette en hel database?


Anbefalte innlegg

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
Videoannonse
Annonse

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
Lenke til kommentar
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
Lenke til kommentar

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å
×
×
  • Opprett ny...