SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=263&group=45
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


MySQLi – erste Gehversuche


Sollten Sie sich für den Einsatz von MySQLi entschieden haben, gilt es nun, sich mit der Syntax und dem prozeduralen bzw. objektorientierten Prinzip der Programmierung auseinanderzusetzen.


MySQL-Datenbankverbindung prüfen und Version ermitteln

Nachdem die MySQL-Erweiterung installiert wurde, sollte ein Testlauf erfolgen. Der Zugriff auf den Datenbankserver via MySQLi-Erweiterung kann auf prozedurale oder objektorientierte Weise erfolgen. Um es kurz zu machen, werfen wir nun einen Blick auf die prozedurale Lösung.

Beispiel – prozedurale Syntax (Arbeitsweise)

<?php
// Verbindungsvariable samt Zugangsdaten festlegen
@$db = mysqli_connect("localhost", "root", "", "testbank");

// Verbindung überprüfen
if (mysqli_connect_errno()) {
  printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
  exit();
}

// SQL-Befehl ausführen
$befehl = mysqli_query($db, "SELECT version() AS version");

// Antwort der Datenbank in ein assoziatives Array übergeben
$resultat = mysqli_fetch_assoc($befehl);

// MySQL-Version aus dem Resultat-Array auslesen
echo "Wir arbeiten mit MySQL-Version {$resultat['version']}";

// Verbindung zum Datenbankserver beenden
mysqli_close($db);
?>

Die objektorientierte Programmierung richtet sich an Objekte, diese wiederum werden aus sogenannten Klassen abgeleitet, welche eine Art Gruppe von gleichen Objekten darstellen. Um einen Zugriff auf unsere Datenbank zu erhalten, geht man im Fall der objektorientierten Programmierung wie folgt vor:

Beispiel – objektorientierte Syntax (Arbeitsweise)

<?php
// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli("localhost", "root", "", "testbank");

// Verbindung überprüfen
if (mysqli_connect_errno()) {
  printf("Verbindung fehlgeschlagen: %s\n", mysqli_connect_error());
  exit();
}

// SQL-Befehl ausführen
$befehl = $db->query("SELECT version() AS version");

// Antwort der Datenbank in ein Objekt übergeben
$resultat = $befehl->fetch_object();

// MySQL-Version aus dem Resultat-Objekt auslesen
echo "Wir arbeiten mit MySQL-Version {$resultat->version}";

// Verbindung zum Datenbankserver beenden
$db->Close();
?>

Bei der objektorientierten Lösung wird als Erstes dafür gesorgt, dass die mysqli()-Klasse ein Verbindungsobjekt zum Datenbankserver bereitstellt, welches den Zugriff auf die benötigten Methoden ermöglicht und darüber hinaus die Zugangsdaten enthält.

$db = new mysqli("localhost", "root", "", "testbank");

Im Beispiel führt die Instanziierung des Objekts in $db auch gleich zum Öffnen der Verbindung. Der SQL-Befehl SELECT in Verbindung mit der query()-Methode ermittelt anschließend die Versionsnummer des MySQL-Datenbankservers.

$befehl = $db->query("SELECT version() AS version");

Das Resultat lässt sich anschließend in ein Objekt überführen.

$resultat = $befehl->fetch_object();

Der darauf folgende Zugriff auf die Objektfelder (Eigenschaften) erfolgt über deren Bezeichnung, im vorliegenden Fall: $resultat->version.

echo "Wir arbeiten mit MySQL-Version {$resultat->version}";

Abschließend wird noch mit der close()-Methode dafür gesorgt, dass die Verbindung wieder geschlossen wird.

Achtung: Da es sich bei der MySQLi-Erweiterung um eine experimentelle Erweiterung handelt, kann die einwandfreie Funktionsweise von MySQL 5 oder höher nicht garantiert werden. Die verwendeten Skripts wurden mit MySQL 5.0.24 getestet und Sie sollten PHP 5.1 oder höher für die MySQLi-Erweiterungen verwenden.