Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  PHP & MySQL-Zugriffe
Letztes Update: 16.08.2005 17:53:45


Navigation

Seite News *

Seite Startseite
Seite Über SELFPHP
Seite Werbung
Seite Kontakt
Seite Forum *
Seite Download *
Seite SELFPHP Banner *
Seite SELFPHP in Buchform
Seite Newsletter *
Seite Impressum

 
* 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 79.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 erfahren haben, wie man Datenbanktabellen erzeugt und entfernt, wollen wir Ihnen nun noch zeigen, wie Sie Änderungen an der Datenbanktabellen-Struktur vornehmen können.

Sie haben die Möglichkeit, einzelne Felder hinzuzu fügen, zu löschen oder deren Typ zu ändern. Die Änderungen erfolgen hierbei mit Hilfe der MySQL-Anweisung ALTER, die Sie mit mysql_query() oder mysql_db_query() an den Server senden.


Felder hinzufügen

Neue Felder in eine Datenbanktabelle einzufügen geht so:



<?

// Verbindung zum MySQL-Server
$db mysql_connect ("localhost""matthias""");

$SQL_Befehl "ALTER TABLE Mitglieder ADD Telefon CHAR(14)";

mysql_db_query("verein"$SQL_Befehl);

mysql_close($db);

?>



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:



<?

// Verbindung zum MySQL-Server
$db mysql_connect ("localhost""matthias""");

$SQL_Befehl "ALTER TABLE Mitglieder MODIFY Telefon INTEGER";

mysql_db_query("verein"$SQL_Befehl);

mysql_close($db);

?>



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.



<?

// Verbindung zum MySQL-Server
$db mysql_connect ("localhost""matthias""");

$SQL_Befehl "ALTER TABLE Mitglieder DROP COLUMN Telefon";

mysql_db_query("verein"$SQL_Befehl);

mysql_close($db);

?>




Ermitteln der Tabellenstruktur

Die meisten Funktionen, die Informationen über Tabellen und Felder liefern, beziehen sich auf die Tabelleninhalte (Ergebnistabellen). Die Funktion mysql_list_fields() bezieht sich dagegen auf die Struktur der Datenbanktabellen. Diese Unterscheidung sollten Sie immer beachten, wenn es um die Ermittlung von Tabelleninhalte geht. Mit mysql_list_fields() können Sie die Spaltenbezeichnungen einzelner Datenbanktabellen auslesen.



<?php

$db 
mysql_connect ("localhost""matthias""");
$felder mysql_list_fields("verein","mitglieder",$db);
mysql_close($db);

?>



Allerdings lassen sich auf die Ergebnisstruktur nicht Funktionen wie mysql_result() oder mysql_num_rows() anwenden. Es handelt sich nicht, wie bisher um eine der üblichen Ergebnistabellen. Zur Verarbeitung stehen Ihnen folgende Funktionen zur Verfügung:
. mysql_num_fields() - ermittelt die Zahl der Felder.
. mysql_field_flags() - liefert eine Liste mit Feldeigenschaften.
. mysql_field_len() - ermittelt die Länge eines Feldes.
. mysql_field_name() - ermittelt den Namen eines Feldes.
. mysql_field_type() - ermittelt den Datentyp eines Feldes.

Mit Ausnahme von mysql_num_fields(), mit der Sie die Anzahl der Felder ermitteln, beziehen sich sämtliche Funktionen immer auf ein bestimmtes Feld. Dieses ist per Index im zweiten Argument anzugeben. Der Indexwert 0 steht auch in diesem Fall für das erste Feld. Im ersten Argument ist die Ergebnis-ID, also der Zeiger auf die Ergebnisstruktur, zu benennen, im vorliegenden Fall ist dies die Variable $felder.

Achtung: Hierbei handelt es sich um die Struktur, die von mysql_list_fields() erzeugt wird, nicht um das Ergebnis einer Abfrage.



Beispiel



<?php

$db 
mysql_connect ("localhost""matthias""");
$felder mysql_list_fields("verein","mitglieder",$db);

if (
$felder) {
    
$anzahl mysql_num_fields($felder);
    for (
$i 0$i $anzahl$i++) {
        echo 
"<p>";
        echo 
mysql_field_name($felder$i) . " / ";
        echo 
mysql_field_type($felder$i) . " / ";
        echo 
mysql_field_len($felder$i) . " / ";
        echo 
mysql_field_flags($felder$i);
        echo 
"</p>";
    }
}

mysql_close($db);

?>




Ausgabe



MitgliedID / int / 11 / not_null primary_key auto_increment
MitgliedVorname / string / 40 / 
MitgliedNachname / string / 40 / 
Aufgabe / string / 40 / 
Geburtsdatum / date / 10 /



Wie Sie sehen durchläuft die for-Schleife sämtliche Felder. Für jedes Feld werden Name, Typ, Länge und die Feldeigenschaften ausgegeben.


 


Datenbanken und Tabellen löschen
 




 sponsored by

Host Europe


HighText iBusiness


Host Europe




© 2001-2006 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt
© 2005-2006 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de