PHP/Datenbanken anlegen und löschen

Aus Mikiwiki
< PHP
Zur Navigation springen Zur Suche springen

Das folgende Skript "mysql_createdb.php" zeigt das Anlegen und anschliessende Löschen einer temporären Datenbank.

<?php
## Name    mysql_createdb.php

include("open.inc.php");

function show_dbs($connection) 
{
  ## Ermittlung aller Datenbanken
  $result = mysql_list_dbs($connection);
  $i = 0;
  echo "<p><b>Datenbanken</b>:<br />\n";
  ## Extraktion der Tabellennamen
  while ($i < mysql_num_rows ($result)) 
  {
    $tablenames[$i] = mysql_tablename ($result, $i);
    echo $tablenames[$i] . "<br />\n";
    $i++;
  }
}
## Schickt Abfrage an die Datenbank
function sql_query($success, $sql, $connection)
{
  $result = mysql_query($sql, $connection);
  if ($result)
  {
    echo "<p>$success.</p>\n";
  }
  else 
  {
    echo "<p>" . mysql_error($connection) . "</p>\n";
  }
  return $result;
}
## Anlegen der Datenbank "temporaer"
$result = mysql_query("CREATE DATABASE temporaer", $connection);
if ($result) 
{
  echo "<p>Datenbank angelegt.</p>\n";
}
else 
{
  echo "<p>" . mysql_error($connection) . "</p>\n";
}
show_dbs($connection);
## Wechsel in die Datenbank "temporaer"
$sql    = "USE temporaer";
sql_query("Wechsel in die Datenbank 'temporaer'", $sql, $connection);
## Anlegen der Tabelle "temp"
$sql    = "CREATE TABLE temp (sessions VARCHAR(50) NOT NULL)";
sql_query("Tabelle temp erzeugt", $sql, $connection);
## Einfügen von Daten
$sql    = "INSERT INTO temp (sessions) VALUES ('1234567')";
sql_query("Session ID eingefügt", $sql, $connection);
## Abfrage der Daten
$sql    = "SELECT * FROM temp";
$result = sql_query("Session IDs anzeigen", $sql, $connection);
if ($result)
{
  $number = mysql_num_rows($result);
  echo "<p>Es ist $number Datensatz gelesen worden: ";
  while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  {
    echo implode("|", $row);
  }
}
## Löschen der Datenbank "temporaer"
$result = mysql_query("DROP DATABASE temporaer", $connection);
show_dbs($connection);
mysql_close($connection);
?>

Mit folgenden SQL-Befehlen können Datenbankbestandteile gelöscht werden.

DROP DATABASE <Datenbankname> Löschen einer Datenbank.
DROP TABLE <Tabellenname> Vollständiges löschen einer Tabelle.
DELETE FROM <Tabellenname> (ohne "WHERE"-Bedingung) Löschen aller Datensätze einer Tabelle.
TRUNCATE TABLE <Tabellenname> Löschen aller Datensätze einer Tabelle (schneller als "DELETE").