Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Datenbankprogrammierung  Teil von  PHP und MySQL-Zugriffe
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++



:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Datenbanktabellen ändern




Nachdem Sie nun wissen, wie man Datenbanktabellen erzeugt und entfernt, wollen wir Ihnen nun noch zeigen, wie Sie Änderungen an der Datenbanktabellenstruktur vornehmen können.

Sie haben die Möglichkeit, einzelne Felder hinzuzufügen, zu löschen oder deren Typ zu ändern. Die Änderungen erfolgen dabei mithilfe der MySQL-Anweisung ALTER, die Sie mit query() oder mysqli_query() an den Server senden.


Felder hinzufügen

Das folgende Beispiel demonstriert, wie neue Felder in eine Datenbanktabelle eingefügt werden kann:

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim', 'Verein');

// Verbindung überprüfen
if (mysqli_connect_errno()) {
  printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
  exit();
}

// SQL-Befehl
$sql_befehl = "ALTER TABLE Mitglieder ADD Telefon CHAR(14)";

if ($db->query($sql_befehl)) {
  // Meldung bei Erfolg
  echo "Datenbanktabelle wurde erfolgreich erweitert.";  
} else {
  // Meldung bei Fehlschlag
  echo "Datenbanktabelle konnte nicht geändert werden!";
}

// Verbindung zum Datenbankserver beenden
$db->close();

?>

Im vorliegenden Beispiel wird das Feld Telefon mit dem Typ CHAR hinzugefügt.


Feldtyp ändern

Wollen Sie den Typ eines bestehenden Feldes ändern, lässt sich dies wie folgt umsetzen:

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim', 'Verein');

// Verbindung überprüfen
if (mysqli_connect_errno()) {
  printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
  exit();
}

// SQL-Befehl
$sql_befehl = "ALTER TABLE Mitglieder MODIFY Telefon INTEGER";

if ($db->query($sql_befehl)) {
  // Meldung bei Erfolg
  echo "Datenbanktabelle wurde erfolgreich modifiziert.";  
} else {
  // Meldung bei Fehlschlag
  echo "Datenbanktabelle konnte nicht modifiziert werden!";
}

// Verbindung zum Datenbankserver beenden
$db->close();

?>

Nun besitzt das Feld Telefon den Typ INTEGER.

Achtung: Das Ändern des Typs eines Feldes sollte äußerst sorgfältig durchgeführt werden. Nicht jeder Typ lässt sich in einen anderen Typ umwandeln. Daher ist darauf zu achten, dass es zu keinem Datenverlust kommt.



Feld löschen

Das Löschen von Feldern bereitet keine Schwierigkeiten. Natürlich sollte klar sein, dass die Entfernung eines Feldes grundsätzlich zu einem Datenverlust führt.

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim', 'Verein');

// Verbindung überprüfen
if (mysqli_connect_errno()) {
  printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
  exit();
}

// SQL-Befehl
$sql_befehl = "ALTER TABLE Mitglieder DROP COLUMN Telefon";

if ($db->query($sql_befehl)) {
  // Meldung bei Erfolg
  echo "Datenbankfeld wurde erfolgreich gelöscht.";  
} else {
  // Meldung bei Fehlschlag
  echo "Datenbankfeld konnte nicht gelöscht werden!";
}

// Verbindung zum Datenbankserver beenden
$db->close();

?>

Ermitteln der Tabellenstruktur via MySQLi-Unterstützung

Die meisten Methoden, die Informationen über Tabellen und Felder liefern, beziehen sich auf die Tabelleninhalte (Ergebnistabellen). Wie gelangt man jedoch an die Tabellenstruktur? – Selbstverständlich steht Ihnen auch hierfür eine Kombination aus SQL-Abfragen und MySQLi-Methoden zur Verfügung, die es Ihnen ermöglichen, auf die Tabellenstruktur zuzugreifen.

Beispiel – DESCRIBE
<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim', 'Verein');

// Verbindung überprüfen
if (mysqli_connect_errno()) {
  printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
  exit();
}

// SQL-Befehl
$sql_befehl = "DESCRIBE Mitglieder";

if ($resultat = $db->query($sql_befehl)) {
  // Abfrageergebnis durchlaufen
  while($feldinfo = $resultat->fetch_assoc())
  {
    // Datenfeldinformationen durchlaufen
    foreach ($feldinfo as $wert)
    {
      if (!empty($wert))
      {
        echo $wert . " / ";
      }
    }
    echo "<br>";
  }
  $resultat->close();
} else {
  // Meldung bei Fehlschlag
  echo "Datenbanktabelle konnte nicht modifiziert werden!";
}

// Verbindung zum Datenbankserver beenden
$db->close();

?>

Ausgabe
MitgliedID / int(11) / NO / PRI / auto_increment /
MitgliedVorname / char(40) / YES /
MitgliedNachname / char(40) / YES /
Aufgabe / char(40) / YES /
Geburtsdatum / date / YES /



 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


Microsoft Deutschland GmbH
twosteps.net - ...Premium-Webhosting
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2009 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt