PHP Daten­bank­ver­bindung PDOKurze Einführung mit Grundfunktionen zu PHP Data Object

https://www.php-einfach.de/mysql-tutorial/verbindung-aufbauen/

PDO Verbindung aufbauen

Für einen einheitlichen Einsatz des Zeichensatzes empfiehlt es sich, jede Form von Text im UTF8 Format vorzuhalten. Sowohl im fertigen HTML, als auch in der Datenbank. Deshalb hier das angefügte Charset in der Datenbankverbindung.

$pdo = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'username', 'password');

Datenbank Abfrage

$sql_query = "SELECT * from users";
$result = $pdo->query($sql_query)->fetch(PDO::FETCH_ASSOC);
print_r($result);

Prepared Statements

Um SQL-Injections zu verhindern empfiehlt sich der Einsatz von prepared statements . Sobald ihr irgendwelche Daten vom Benutzer an die Datenbank übergebt, sollte ihr stets auf prepared Statements zurückgreifen.

$statement = $pdo->prepare("SELECT * FROM users WHERE id = ?");
$statement->execute(array($id));

Benannte Statements

Hier wird jede Variable vorher definiert und dann mit der PHP Variable gefüllt.

$statement = $pdo->prepare("SELECT * FROM users WHERE vorname = :vorname OR nachname = :nachname OR email = :email");
$statement->execute(array('vorname' => $vorname, 'nachname' => $nachname, 'email' => $email));

INSERT INTO

Hier wird jede Variable vorher definiert und dann mit der PHP Variable gefüllt.

$statement = $pdo->prepare("INSERT INTO tabelle (spalte1, spalte2, splate3) VALUES (?, ?, ?)");
$statement->execute(array('wert1', 'wert2', 'wert3'));

Letzte eingefügte ID anzeigen

echo $pdo->lastInsertId();

UPDATE Entry

$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$statement = $pdo->prepare("UPDATE users SET email = :email_neu WHERE id = :id");
$statement->execute(array('id' => 1, 'email_neu' => 'neu@php-einfach.de'));

DELETE Entry

$statement = $pdo->prepare("DELETE FROM users WHERE id = ?");
$statement->execute(array(1)); //Löscht Benutzer mit ID 1