Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Datenbankprogrammierung  Teil von  PHP und MySQL-Zugriffe
Letztes Update: 04.09.2007 20:49:50

Navigation

Seite Startseite
Seite Aktuelles
Seite Seite News*
Seite Seite Pressemitteilungen*
Seite SELFPHP
Seite Seite Über SELFPHP
Seite Seite Werbung
Seite Seite Kontakt
Seite Seite Unsere Banner
Seite Seite Impressum
Seite Qozido
Seite Seite Diving Edition
Seite Seite Snorkeling Edition
Seite SELFPHP Dokumentation
Seite Seite PHP-Skripte
Seite Seite PHP Befehlsreferenz
Seite Seite PHP 5 Praxisbuch
Seite Seite PHP Code Snippets
Seite Seite SELFPHP in Buchform
Seite Anbieterverzeichnis
Seite Seite Globale Branchen
Seite Seite Webhosting/Server
Seite Services
Seite Seite Forum*
Seite Seite RSS-Feeds*
Seite Seite Downloads*
Seite Seite Gratis-Video-Lektionen*
Seite Seite SELFPHP auf Heft-CD*
Seite Seite Newsletter*
Seite Internet Security
 sponsored by  
Seite Stellenangebote*
Sedo - Bei uns wird PHP großgeschrieben
Seite Premium-Partner   
Webhosting/Serverlösungen
Seite Produktempfehlung   
Seite Seite SteadyBackup

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  
 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 100.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 




 

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 /



 




 sponsored by

Sedo - Bei uns wird PHP großgeschrieben


VERIO - An NTT Communications Company


HighText iBusiness


Webspace-Verkauf.de


video2brain




 Premium-Partner
 Webhosting/Serverlösungen

BPI-Systeme


Premium-Partner Pixel X


Premium-Partner First Colo


Premium-Partner dogado Internet




Qozido


© 2001-2008 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt