Ich habe mir letzten Winter PHP beigebracht, noch nicht auf Profilevel aber für einfache Webseiten reicht es schon
Damals habe ich mich bei der Datenbankabfrage für PHP Data Objects, in Kurzform PDO, entschieden. Warum? Daran kann ich mich nicht mehr 100% erinnern, aber ich denke ich fand den Ansatz gut eine Datenbankabfrage zu schreiben, wo es egal ist welche Datenbank im Hintergrund wirkt. Es wird dann noch der richtige Treiber für die Datenbank benötigt.
PHP Data Objects oder kurz PDO stellt eine Abstraktionsebene für den Datenbankzugriff dar und ermöglicht einen einheitlichen Zugang von PHP auf unterschiedliche SQL-basierte Datenbanken, wie zum Beispiel MySQL, PostgreSQL oder SQLite.
Quelle: https://de.wikipedia.org/wiki/PHP_Data_Objects
Das PHP Handbuch zu PDO findet man hier.
Wie Ihr wisst, benutze ich dieses Forum hauptsächlich als Notizbuch. Aber wie immer, sollte jemand fachliche Fehler finden, ich freue mich über jeden Hinweis und Tipp.
Datenbank Aufruf
Die Datenbank muss man aufrufen, damit man mit ihr arbeiten kann. Das macht man z.B. so. Das File soll hier den Namen db_connect.php haben.
<?php
try {
$pdo = new PDO('mysql:host=localhost;dbname=DBNAME', 'Benutzer', 'Passwort');
// set the PDO error mode to exception
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
Dieser DB-Aufruf kommt in ein File außerhalb des Webseiten Ordners! Innerhalb des Projektes gibt es dann ein File, was folgendes enthält. Name db_connect.inc.php
<?php
//DB Connect
require_once
dirname($_SERVER['DOCUMENT_ROOT'])
. DIRECTORY_SEPARATOR
. '../ORDNER'
. DIRECTORY_SEPARATOR
. 'db_connect.php';
?>
Innerhalb der einzelnen PHP-Files ruft man dann die Datenbank wie folgt auf.
//DB Connect
require __DIR__ . '/inc/db_connect.inc.php';
Damit wäre der DB Aufruf ausreichend sicher. Nun kann man mit der DB arbeiten.
Datenbank schließen
So schließt man die Datenbankverbindung wieder
$pdo = null;
Beispiel um Daten aus der Datenbank abzurufen
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$statement = $pdo->prepare("SELECT * FROM tabelle WHERE datum = :date ");
$statement->execute(array('date' => $date));
Wir wollen aus einer Tabelle Daten anzeigen. Auswahlkriterium soll das Datum sein, welches in $date abgelegt ist. Nun füllen wir eine Tabelle mit den Daten.
$zahl = 1;
<?php
while($row = $statement->fetch())
{
echo '<tr>
<td>'.$zahl.'</td>
<td>'.$row[datum].'</td>
<td>'.$row[time].'</td>
</tr>';
$zahl = $zahl + 1;
}
?>
Wird fortgesetzt!