Folien



(letzte Synchronisation der PDF-Präsentation: 02.08.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

In allen folgenden Beispielen werden folgende Benutzerdaten angenommen:
Host: localhost
[Port: 8889]
User: root
Password: root
Datenbankname: sqltest

Verbindung zum Datenbankserver herstellen

Um per PHP eine Verbindung zum Datenbankserver zu öffnen, wird mysql_connect() benutzt, Syntax mit den drei notwendigen Argumenten (mehr: php.net – mysql_connect-Manual):

PHP-Code
  mysql_connect(Hostname, Benutzername, Passwort)  

Hostname ist dabei meist localhost (defaultwert: ‘localhost:3306’); wenn kein Passwort gesetzt ist, werden zwei leere Anführungszeichen vergeben. mysql_connect funktioniert mit doppelten und mit einfachen Anführungszeichen.

z.B.

PHP-Code
  mysql_connect("localhost", "root", "root"); mysql_connect('localhost', 'root', '');  

Meist bietet es sich an, die Verbindung in einer Variablen zu speichern (“Verbindungsbezeichner”), z.B.

PHP-Code
  $link = mysql_connect('localhost', 'root', 'root');  

Diese Variable kann auch verwendet werden, um die Verbindung zum Datenbankserver später zu schließen (s.u.). Gerne benutzt man hier $link als Variable.

mysql_pconnect()

funktioniert wie mysql_connect, allerdings wird durch das Prozedurende oder mysql_close() die Verbindung zur Datenbank nicht geschlossen. Das ist nützlich, wenn man die gleiche Verbindung häufiger nutzen möchte, denn der Verbindungsaufbau benötigt nicht nur (relativ) viel Zeit, sondern muss auch jedes mal neu explizit vorgenommen werden.

Verbindung testen

Wird direkt nach der Definition des Verbindungsbezeichners getätigt.

PHP-Code
  if (! $link) { exit ("Es konnte keine Verbindung hergestellt werden"); }    

Alternativ die Kurzform:

PHP-Code
  $link = mysql_connect('localhost', 'root', 'root') or exit ("Es konnte keine Verbindung hergestellt werden.");  

Datenbank auswählen mit mysql_select_db()

Syntax:

PHP-Code
  mysql_select_db(Datenbankname[, Verbindungskennung])  

Beispiele:

PHP-Code
  mysql_select_db('sqlTest'); mysql_select_db($db_name, $verbindung);  

Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. (mehr: php.net – mysql_connect-Manual). In der Regel reicht also mysql_select_db($db_name);

Auch die Verbindung zur DB kann getestet werden:

PHP-Code
  mysql_select_db($db_name) or exit ("Die Datenbank existiert nicht.");  

Verbindung zum Datenbankserver schließen: mysql_close()

PHP-Code
  mysql_close($link);  

Warum mysql_close() normalerweise nicht notwendig ist:

Wird die Verbindungs-Kennung nicht angegeben, wird die zuletzt geöffnete Verbindung geschlossen. Die Verwendung von mysql_close() ist für gewöhnlich nicht notwendig, weil offene, nicht persistente Verbindungen automatisch mit Beendigung des PHP-Skripts geschlossen werden. (php.net: mysql_close-Manual)

Verwendung von Variablen

Das Skript bleibt flexibler, wenn die notwendigen Informationen in Variablen gespeichert werden, also Hostname, Nutzername, Kennwort, Datenbankname, Verbindung.

Beispiel-Listing (als Vorlage/Funktion/include verwenden!)

öffnet eine Verbindung und schließt sie wieder.

PHP-Code
  <?php $db_server = "localhost"; // Host-Name $db_user = "root"; // Benutzername $db_pass = "root"; // Kennwort $db_name = "sqltest"; // Name der Datenbank   $link = mysql_connect($db_server, $db_user, $db_pass) or exit ("Es konnte keine Verbindung zum Datenbankserver hergestellt werden"); mysql_select_db($db_name, $link) or exit ("Diese Datenbank existiert nicht."); mysql_close($link); ?>  

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: PHP + MySQL - Verbindung zur Datenbank herstellen *****

PHP/MySQL_1-1: Verbindung zur DB – fehlerhaftes Listing 1

Im folgenden Skript fehlen einige Anführungszeichen bzw. wurden falsch gesetzt. Fügen Sie sie ein und überprüfen Sie, ob es beim Ausführen des Skripts zu Fehlermeldungen oder Warnungen kommt.

PHP-Code
$db_server = localhost; // Host-Name $db_user = root; // Benutzername "$db_pass" = root; // Kennwort "$db_name" = sqltest; // Name der Datenbank "$link" = mysql_connect($db_server, $db_user, $db_pass) or "exit (Es konnte keine Verbindung zum Datenbankserver hergestellt werden)"; mysql_select_db("$db_name", "$link") or exit (Diese Datenbank existiert nicht.); mysql_close("$link");  




PHP/MySQL_1-2: Verbindung zur DB – fehlerhaftes Listing 2

Finden Sie die drei Fehler im folgenden Skript. Überprüfen Sie, ob es beim Ausführen des Skripts zu Fehlermeldungen oder Warnungen kommt.

PHP-Code
$db_server = "localhost"; // Host-Name $db_user = "root"; // Benutzername $db_pass = "root"; // Kennwort $db_name = "sqltest"; // Name der Datenbank $link = mysql_connect($db_server, $user, $db_pass) or exit ("Es konnte keine Verbindung zum Datenbankserver hergestellt werden")
mysql_select($db_name, $link) or exit ("Diese Datenbank existiert nicht.");mysql_close($link);  




PHP/MySQL_1-3: Verbindung zur DB – fehlerhaftes Listing 3

Wie viele Fehler finden Sie in folgendem Skript? (Die Zugangsdaten zur DB lauten: Username = login_name, Passwort = pwd123, Datenbankname = test_datenbank, Servername = mein_server).

PHP-Code
$link = mysql_connect('login_name', 'pwd123', 'mein_server'); mysql_select_db($test_datenbank) or exit ("Diese Datenbank existiert nicht.");  




PHP/MySQL_1-4: Verbindungsskript ausprobieren

Öffnen Sie die Datei 08phpmysql/_php-dateien/dbconnect.php . Passen Sie die Zugangsdaten an und testen Sie, ob das Skript ohne Fehlermeldung läuft.

Das Skript hat folgenden Inhalt:

PHP-Code
  <?php   // Zugangsdaten spezifizieren   $db_server = 'localhost'; $user = 'root'; $pass = 'root'; // bei WAMP(Windows): leer $db_name = 'mysql'; // hier bitte DB-Name eintragen   // Verbindung zum DB-Server aufbauen $link = mysql_connect($db_server, $user, $pass) or exit ("Zugangsdaten (Server, Username und/oder Passwort) nicht korrekt!<br />");   // Mit Datenbank $db_name verbinden mysql_select_db($db_name) or exit ("Angegebene Datenbank existiert nicht!");   // Erfolgsmeldung ausgeben echo "Verbindung zur DB erfolgreich hergestellt!<br />\n";   ?>    





PHP/MySQL_1-5: DB-Verbindung herstellen - Syntaxkenntnisse

1. Wie lautet der Befehl, um mit PHP eine Verbindung zu einem MySQL-Datenbankserver herzustellen?
2. Wie lautet der Befehl, um mit PHP nach erfolgreicher Verbindung zum Datenbankserver eine Datenbank auszuwählen?
3. Wie beenden Sie in PHP eine Datenbankverbindung?
4. Schreiben Sie ein Skript, das eine Verbindung zu einer Datenbank öffnet. Folgende Zugangsdaten sind Ihnen bekannt: Username = admin, Passwort = !1“2§3, Datenbankname = kunden, Servername = localhost