Advertisement
Home arrow PHP arrow Tutorials arrow PHP-Zugriff auf MySQL-Datenbanken
Menü
Home
News
Webdesign
PHP
MySQL
Windows
Netzwerke
Internet
Hardware
Infos im Web
Download
Kontakt
Impressum
Benutzer Online
Aktuell sind 49 Gäste online
Statistik seit 1.1.2005
Besucher: 473988
 
PHP-Zugriff auf MySQL-Datenbanken Drucken

In diesem Artikel werden wichtige PHP-Programmstrukturen für den Zugriff auf eine MySQL-Datenbank an Hand von Beispielen erläutert.

 

Verbindungsparameter der MySQL-Datenbank festlegen

Die Verbindungsparameter sollten nicht mitten im Quelltext Ihrer vielen verschiedenen PHP-Seiten codiert werden, sondern in einer zentralen Konfigurationsdatei config.inc.php auf Variablen zugewiesen werden:

// Verbindungsparameter
$location = "db121.1und1.com";
$username = "HubertK";
$password = "geheim";
$database = "mydatabase";

Diese Steuerdatei kann in der PHP-Datei beispiel.php ganz einfach eingeschlossen werden:

// Konfigurationsdatei einschliessen:
require_once("include/config.inc.php");

// Jetzt mit dem Datenbankserver eine Verbindung aufbauen:
$conn = mysql_connect("$location","$username","$password");
// Wenn kein $conn-Handle gesetzt ist, konnte keine Verbindung hergestellt werden:
if (!$conn) die ("Could not connect MySQL");
// Bei erfolgter Verbindung die Datenbank auswählen:
mysql_select_db($database,$conn) or die ("Could not open database $database");

Die hergestellte Verbindung gilt während der gesamten Skriptlaufzeit. Wird das Skript beendet, wird auch automatisch die Verbindung abgebrochen. Sobald die Verbindung im Skript hergestellt ist, können SQL-Befehle an die Datenbank gesendet werden, wie in den folgenden Zugriffsbeispielen gezeigt wird.

 

Neue Datensätze in bestehende Tabelle einfügen

Das Hinzufügen geschieht über den INSERT-Befehl von SQL: 

$insert = "INSERT INTO tablename (feld1, feld2, feld3) VALUES ('wert1', 'wert2', 'wert3')";
mysql_query($insert) or die ("Could not add data to the table");

Die Felder, die hinzugefügt werden (feld1, feld2, feld3) werden in runden Klammern aufgeführt. Ihre Reihenfolge muss dabei nicht der Reihenfolge der Felder in der Tabelle entsprechen. Nach dem Schlüsselwort VALUES werden jetzt die  zugehörigen Werte wiederum in runden Klammern aufgelistet. Hierbei ist zu beachten, dass die Reihenfolge der Werte (wert1, wert2, wert3) der voher angegebenen Feldreihenfolge entspricht!

 

Datensätze aus Tabelle abfragen

Datensätze werden mit dem SQL-Befehl SELECT abgefragt. Der Wert  '*' im folgenden Beispiel bedeutet, dass alle Felder des Satzes ausgelesen werden sollen. Das spart viel Schreibarbeit und ist ausserdem während der Entwicklung sinnvoll, wenn man die Tabellenstruktur um weitere Felder erweitert. Im Beispiel werden alle Felder sämtlicher Datensätze (Records) abgefragt, also ohne Suchbedingung:

 

$query = "SELECT * FROM tablename";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);

while($row = mysql_fetch_array($result))
{
    echo "You have $numrows Link(s) in the database<br>n";
    echo "Inhalt von Feld1: $row[feld1]<br>n";
    echo "Inhalt von Feld2: $row[feld2]<br>n";
    echo "Inhalt von Feld3: $row[feld3]<br><br>n";
}

Mit dem PHP-Befehl mysql_num_rows kann die Anzahl der betroffenen Datensätze abgefragt werden. Der Befehl mysql_fetch_array holt immer einen kompletten Datensatzaus dem Antwort-Datenstrom des MySQL-Servers ab. Um alle Records abzufragen wird deshalb eine While-Schleife solange durchlaufen, bis der mysql_fetch_array den Wert FALSE liefert, also keine Daten mehr hat.

 

Bestehende Datensätze updaten

Der Inhalt der Datensätze muss auch von PHP aus verändert werden, z.B. wenn Anmeldedaten eines Benutzers über ein Formular abgefragt werden. Um einen bestehenden Datensatz zu aktualisieren, wird der SQL-Befehl UPDATE eingesetzt:

$query = "UPDATE tablename SET feld1='feld1', feld2='feld2' WHERE feld3='Inhalt-Feld-3'";
$result = mysql_query($query);

Es ist extrem wichtig, dass man dem SQL-Server mit der WHERE-Bedingung eine Einschränkung auf einen oder mehrere Datensätze mitgibt. Vergisst man die WHERE-Bedingung, werden alle Datensätze aktualisiert! 

 

Weitere Datenbankbefehle

Für den Zugriff werden folgende PHP-Befehle sinnvoll eingesetzt:

mysql_insert_id()

liefert die ID des zuletzt eingefügten, neuen Records zurück. Dieser Befehl muss unmittelbar nach Ausführen des INSERT-Befehles abgesetzt werden. Er kann nicht beim UPDATE-Statement verwendet werden.

Formatierung für DATETIME-Feld

Wenn in Formularen Datum- und Zeitabfragen vorgenommen werden, die in einem datetime-Feld von MySQL gespeichert werden sollen, dann muss von deutscher auf englische Darstellung umcodiert werden. Um z.B. einen aktuellen Zeitstempel anzuspeichern kann folgender Befehl verwendet werden:

$ActStamp = date("Y-m-d h:i:s");

-wird fortgesetzt- 

 


Letztes Update ( Sonntag, 29 Mai 2005 )
 
Neue Beiträge
Top Beiträge
Ähnliche Beiträge
© 2005 by Internet-For-All