PHP - Befehle - Datenbanken
1. MySQL
Ich werde mich in diesem Abschnitt ausschließlich mit MySQL beschäftigen, da ich ehrlich gesagt mich noch nie mit einem anderen
Datenbanksystem beschäftigen musste, wenn es um PHP ging. Auch werde ich bis auf Weiteres die Möglichkeiten ignorieren, die
uns sei PHP5 mit mysqli und PDO zur Verfügung stehen. Das kommt später, wenn ich Zeit dazu habe.
2. mysql_connect
Stellt die Verbindung zu einer Datenbank her. Diese Funktion erwartet drei Parameter, den Host, Benutzernamen und das Passwort.
<?php
$db = mysql_connect('localhost','benutzer','passwort');
?>
3. mysql_select_db
Wählt die angegebene Datenbank aus. Dabei wird der so genannte "Zeiger" aus obigem Verbindungsaufbauscript benötigt.
<?php
mysql_select_db('meine_db',$db);
?>
4. mysql_query
Sendet eine Anfrage an die Datenbank. Bei Änderungen innerhalb der Datenbank bekommt man ein true bzw. eine 1
zurück, wenn die Korrektur erfolgreich war, bei einer Suchanfrage erhält man einen "Zeiger", mit dem man das Ergebnis mit den
folgenden Befehlen auswerten kann.
<?php
$result = mysql_query('SELECT * FROM meine_tabelle');
$result = mysql_query('UPDATE meine_tabelle SET ...');
?>
5. mysql_num_rows
Liefert die Anzahl der gefunden Treffer einer Abfrage. Dabei muss der entsprechende "Zeiger" der Anfrage angegeben werden.
<?php
$result = mysql_query('SELECT * FROM meine_tabelle');
$num = mysql_num_rows ($result);
?>
6. mysql_fetch_irgendwas
Um nun die Ergebnisse einer Anfrage auszuwerten, gibt es vier verschiedene Möglichkeiten, die sich nur in der Art und Weise der Ausgabe unterscheiden. Beachten muss man dazu Folgendes. Wenn man genau weiß, dass maximal ein(!) Treffer gelandet wird, so kann man den entsprechenden mysql_fetch_irgendwas-Befehl normal verwenden, ansonsten benötigt man eine Schleife. Bei letzterem wird das Ergebnis in ein fortlaufend durchnummeriertes Array geschrieben.
mysql_fetch_row
Liefert das Ergebnis in einem numerischen Array zurück, pro abgefragtem Tabellenfeld eines.
mysql_fetch_array
Liefert das Ergebnis in einem numerisch-assoziativem Array zurück. Dabei werden pro Treffer für jedes abgefragte Tabellenfeld zwei Einträge erzeugt, einer mit einer fortlaufenden Nummer und einer mit dem Namen des Tabellenfeldes.
mysql_fetch_assoc
Liefert das Ergebnis in einem assoziativen Array zurück. Dabei wird für jedes abgefragte Tabellenfeld ein Index angelegt, der den Namen des Feldes trägt.
mysql_fetch_object
Liefert das Ergebnis als Objekt zurück. Habe ich noch nie benutzt, also geh fort.
<?php
$result = mysql_query('SELECT * FROM meine_tabelle');
// z.B. wir erwarten mehrere Treffer
while ($rows = mysql_fetch_assoc ($result))
{
...
}
// z.B wir haben definitiv nur einen Treffer
$rows = mysql_fetch_array ($result)
?>
7. mysql_error
Hiermit kann man sich Fehlermeldungen der Datenbank ausgeben lassen und entsprechend darauf reagieren.
<?php
mysql_select_db('meine_db',$db) or die (mysql_error());
?>
8. mysql_affected_rows
Damit kann man die Anzahl von geänderten(!) Datensaätzen ermitteln.
<?php
$result = mysql_query('UPDATE bla SET blubb = 1 WEHRE id > 4');
$changed = mysql_affected_rows ($result);
?>
8. mysql_info
Liefert genauere Angaben über das Ergebnis von INSERT-, UPDATE-, ALTER TABLE und
LOAD DATA INFILE-Anweisungen.
<?php
$result = mysql_query('UPDATE bla SET blubb = 1 WEHRE id > 4');
$info = mysql_info();
?>