Teil von  SELFPHP   Teil von  Praxisbuch  Teil von  Datenbankprogrammierung
Letztes Update: 04.09.2007 20:49:50

Navigation

Seite Startseite
Seite Aktuelles
Seite Seite News*
Seite Seite Pressemitteilungen*
Seite SELFPHP
Seite Seite Über SELFPHP
Seite Seite Werbung
Seite Seite Kontakt
Seite Seite Unsere Banner
Seite Seite Impressum
Seite Qozido
Seite Seite Diving Edition
Seite Seite Snorkeling Edition
Seite SELFPHP Dokumentation
Seite Seite PHP-Skripte
Seite Seite PHP Befehlsreferenz
Seite Seite PHP 5 Praxisbuch
Seite Seite PHP Code Snippets
Seite Seite SELFPHP in Buchform
Seite Anbieterverzeichnis
Seite Seite Globale Branchen
Seite Seite Webhosting/Server
Seite Services
Seite Seite Forum*
Seite Seite RSS-Feeds*
Seite Seite Downloads*
Seite Seite Gratis-Video-Lektionen*
Seite Seite SELFPHP auf Heft-CD*
Seite Seite Newsletter*
Seite Internet Security
 sponsored by  
Seite Stellenangebote*
Sedo - Bei uns wird PHP großgeschrieben
Seite Premium-Partner   
Webhosting/Serverlösungen
Seite Produktempfehlung   
Seite Seite SteadyBackup

 
* Link führt ins Internet


Anbieterverzeichnis
Informieren Sie sich über die Unternehmen in unserem Anbieterverzeichnis!  
 


SELFPHP Forum
Fragen rund um die Themen PHP? In über 100.000 Beiträgen finden Sie sicher die passende Antwort!*  


Newsletter
Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!*

Vorname: 
Name:
E-Mail:
 




 

PHP und MySQL-Verbindung




Jetzt sollten Sie prüfen, ob eine Verbindung zum MySQL-Server aufgebaut werden kann und via PHP auf vorhandene Datenbanken zugegriffen werden kann.

Prozedurale Syntax

<?php

// Verbindungsvariable samt Zugangsdaten festlegen
@$db = mysqli_connect('localhost', 'matthias', 'geheim');

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

echo "Verbindung erfolgreich: " . mysqli_get_host_info($db) . "\n</br>";
echo "Server: " . mysqli_get_server_info($db);

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

?>

Objektorientierte Syntax

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim');

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

echo "Verbindung erfolgreich: " . $db->host_info . "\n</br>";
echo "Server: " . $db->server_info;

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

?>

Die erste Zeile stellt eine Verbindung zum MySQL-Server her. Dabei werden der Name des Hosts, der Benutzername und das Passwort übergeben. Optional kann als viertes Argument noch die zu verwendende Datenbank eingetragen werden. Auf einem lokalen Rechner verwenden Sie als Hostname localhost. Optional kann eine Portnummer übergeben werden. Der Standardwert für die Portnummer lautet 3306. Mit Portnummer hätte die Skriptzeile folgende Struktur:
@$db = new mysqli('localhost', 'matthias', 'geheim', '', '3306');

Sollte es zu Problemen beim Verbindungsaufbau kommen, wird die Ausgabe Verbindung fehlgeschlagen: Fehlercode sein.

Achtung: Das Verbindungsobjekt $db sollte immer gesetzt werden, um mit dessen Hilfe jederzeit auf die bestehende Verbindung zum MySQL-Server zugreifen zu können und beispielsweise die Verbindung zu beenden: $db->close(). Der Bezeichner für die Verbindungsvariable kann natürlich frei gewählt werden, anstatt $db würde sich auch $db_verbindung oder $server eignen.

Sollte der Verbindungsaufbau erfolgreich sein, erhalten Sie die Ausgabe Verbindung erfolgreich und Serverversion ($db->server_info) samt Verbindungstyp ($db->host_info). Anschließend wird mit der letzten Skriptzeile dafür gesorgt, dass die Verbindung zum MySQL-Server wieder beendet wird.

Sie sollten folgendes Skript testen.

Objektorientierte Syntax

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim');

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

// SQL-Befehl
$sql_befehl = "SHOW DATABASES";

if ($resultat = $db->query($sql_befehl)) {
  // Meldung bei erfolgreicher Abfrage
  while($daten = $resultat->fetch_object() ){
    // Namen der Datenbanken ausgeben
    echo $daten->Database . "\n</br>";
  }
  // Anzahl der Abfragezeilen
  $anzahl = $resultat->num_rows;
  // Ausgabe
  printf("Abfrage enthält %d Datenbank(en).\n</br>", $anzahl);
  // Speicher freigeben
  $resultat->close();  
} else {
  // Meldung bei Fehlschlag
  echo "Zugriff fehlgeschlagen!";
}

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

?>



Prozedurale Syntax

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = mysqli_connect('localhost', 'matthias', 'geheim');

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

// SQL-Befehl
$sql_befehl = "SHOW DATABASES";

if ($resultat = mysqli_query($db, $sql_befehl)) {
  // Meldung bei erfolgreicher Abfrage
  while($daten = mysqli_fetch_object($resultat) ){
  // Namen der Datenbanken ausgeben
    echo $daten->Database . "\n</br>";
  }
  // Anzahl der Abfragezeilen
  $anzahl = mysqli_num_rows($resultat);
  // Ausgabe
  printf("Abfrage enthält %d Datenbank(en).\n</br>", $anzahl);
  // Speicher freigeben
  mysqli_free_result($resultat);  
} else {
  // Meldung bei Fehlschlag
  echo "Zugriff fehlgeschlagen!";
}

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

?>

Die Ausgabe sollte in etwa wie folgt aussehen:
cdcol
mysql
testbank
praxisbuch
test
webauth
Abfrage enthält 6 Datenbank(en).


Fehlermeldungen unterdrücken

Ich hätte da noch einen speziellen Typ für Sie. Wenn die Verbindung fehlschlägt, wird eine Fehlermeldung erzeugt und ausgegeben. In diesem Fall können Sie diese Fehlermeldung unterdrücken, indem Sie vor den Verbindungsaufbau das @-Zeichen setzen. Das ist vor allem sinnvoll, wenn Sie eine eigene Fehlerbehandlung vornehmen wollen.

Beispiel – objektorientierte Syntax

<?php

// Verbindungs-Objekt samt Zugangsdaten festlegen
@$db = new mysqli('localhost', 'matthias', 'geheim');

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

?>

Sollten Sie eine Verbindungsvariable verwenden wollen, lässt sich eine Fehlerbehandlung auch wie folgt realisieren:

Beispiel – prozedurale Syntax

<?php

// Verbindungsvariable samt Zugangsdaten festlegen
@$db = mysqli_connect('localhost', 'matthias', 'geheim');

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

?>



Soll es noch etwas kompakter sein, dann ist diese Lösung genau richtig.

Beispiel – prozedurale Syntax

<?php

// Verbindungsvariable samt Zugangsdaten festlegen
@$db = mysqli_connect('localhost', 'matthias', 'geheim') OR die("Verbindung fehlgeschlagen: " . mysqli_connect_error());
// Verbindung – Ausgabe
echo "Verbindung erfolgreich!";

?>

Die erste Zeile versucht eine Datenbankverbindung aufzubauen und erzeugt im Erfolgsfall eine Verbindungsvariable, auf die Sie im weiteren Verlauf des Skripts mit der Variablen $db zugreifen können. Lässt sich die Verbindung nicht aufbauen, gibt die Funktion die() eine Fehlermeldung aus und bricht die Bearbeitung des Skripts ab.


 




 sponsored by

Sedo - Bei uns wird PHP großgeschrieben


VERIO - An NTT Communications Company


HighText iBusiness


Webspace-Verkauf.de


video2brain




 Premium-Partner
 Webhosting/Serverlösungen

BPI-Systeme


Premium-Partner Pixel X


Premium-Partner First Colo


Premium-Partner dogado Internet




Qozido


© 2001-2008 E-Mail SELFPHP - Damir Enseleit, info@selfphp.deImpressumKontakt