MySQL-Tabelle erstellen mit PHP - Tutorial
Hier moechte ich euch zeigen, wie einfach es ist, eine MySQL-Tabelle zu erstellen ...
Bevor man sich ueberhaupt an die Erstellung einer Tabelle macht, sollte man sich zuerst einmal gedanken ueber den Aufbau einer solchen machen.
Was fuer Spalten benoetigen wir und vorallem von welchem TYP sollen diese sein?
Es gibt erschiedene Spaltentypen
- numerische Datentypen
- Datums - und Zeittypen
- String-Typen
Als Beispiel werden wir eine Tabelle mit der Bezeichnung
news erstellen,
die folgende Spalten enthaelt:
----------------------------------------
| id | autor | titel | story | datum |
----------------------------------------
Also fangen wir an, wir muessen eine Verbindung zur Datenbank aufbauen,
wie das geht wird hier erklaert
=>Datenbankverbindung herstellen
Ohne Verbindung zur Datenbank kann keine neue Tabelle angelegt werden!
Wir benoetigen zur Erstellung einer neuen Tabelle den Befehl
mysql_query(),
dieser sende eine Anfrage, an die zur Zeit aktive Datenbank.
Den Befehl
mysql_query() bestuecken wir mit der Anweisung uns eine Tabelle zuerstellen,
dies sieht wie folgt aus:
<?php
// Datenbankverbindung
//---------------------------------------------------
$host = "localhost"; // Adresse des Datenbankservers, meist localhost
$user = ""; // Ihr MySQL Benutzername
$pass = ""; // Ihr MySQL Passwort
$dbase = ""; // Name der Datenbank
$connection = mysql_connect("$host" , "$user" , "$pass")
OR die ("Keine Verbindung zu der Datenbank moeglich.");
$db = mysql_select_db($dbase , $connection)
OR die ("Auswahl der Datenbank nicht moeglich.");
//---------------------------------------------------
mysql_query("CREATE TABLE IF NOT EXISTS news (
id INT(255) NOT NULL auto_increment,
autor varchar(100) NOT NULL,
titel varchar(255) NOT NULL,
story text NOT NULL,
datum datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id) );
");
mysql_close(); // beendet die DB-Verbindung
?>
Mit
CREATE TABLE geben wir an, dass eine neue Tabelle erzeugt werden soll
IF NOT EXISTS ist dafuer zustaendig, dass die neue Tabelle nur erstellt wird,
wenn noch KEINE Tabelle mit der darauffolgenden Bezeichnung, in unserer aktiven DB, vorhanden ist.
Als naechstes werden die Spalten definiert...
id int(255) NOT NULL auto_increment, erzeugt eine Spalte mit der Bezeichnung
id, die vom TYP
int ist, also ein numerischer Datentype
NOT NULL gibt an, dass immer ein Wert eingetragen werden muss
Und
auto_increment erzeugt automatisch eine fortlaufende Nummer fuer jeden neuen Datensatz, in Verbindung mit PRIMARY KEY dient dies zur eindeutigen Identifizierung von Datensaetzen.
autor varchar(100) NOT NULL, erzeugt eine Spalte mit der Bezeichnung
autor, die vom Typ varchar ist, die maximale Anzahl der Zeichen beschraenkt sich auf 100, und auch hier wird mit
NOT NULL angegeben, dass immer ein Wert eingetragen werden muss
Fuer
titel varchar(255) NOT NULL, gilt das selbe Spielchen, nur hier betraegt die max. Anzahl der Zeichen 255.
story text NOT NULL, erzeugt eine Spalte mit der Bezeichnung
story, der Typ ist hier
text und auch hier muss immer ein Wert angegeben werden.
datum datetime NOT NULL default '0000-00-00 00:00:00', erzeugt eine Spalte mit der Bezeichnung
datum, die vom TYP datetime ist, auch hier wird mit
NOT NULL angegeben, dass immer ein Wert eingetragen werden muss, anschliessend wird der Standardwert von Datum/Zeit mittels
default '0000-00-00 00:00:00' definiert, was aber nicht zwingend erforderlich ist.
Mit
PRIMARY KEY (id) ) definieren wir den Primaerschluessel unserer Tabelle, Primaerschluessel muessen eindeutig sein (auto_increment) und es mu NOT NULL angegeben werden.
Eine andere Variante, den Primaerschluessel zu definieren, waere wenn man diesen gleich bei der Definierung unserer Spalte mit der Bezeichnung
id angegeben wuerde, dies wuerde dann wie folgt aussehen:
<?php
mysql_query("CREATE TABLE IF NOT EXISTS news (
id int(255) NOT NULL auto_increment PRIMARY KEY,
autor varchar(100) NOT NULL,
titel varchar(255) NOT NULL,
story text NOT NULL,
");
?>
Und mit
mysql_close(); wird unsere DB-Verbindung dann beendet ...
Merke:
Wenn wir eine Spalte definieren, muessen wir IMMER zuerst die Bezeichnung(Namen) der Spalte und danach den Typ angegeben, der Rest ist optional!