Ja, ich kann deine Frage beantworten. PDO (PHP Data Objects) ist eine Schnittstelle in PHP, die den Zugriff auf unterschiedliche Datenbanken ermöglicht. Es bietet auch eine sichere Methode zum Ausführen vorbereiteter Abfragen (prepared statements), die SQL-Injection verhindern können. Hier ist eine Anleitung, wie vorbereitete Abfragen mit PDO durchgeführt werden können.
```php
$dsn = ‘mysql:host=localhost;dbname=testdb’;
$user = ‘dbuser’;
$pass = ‘dbpass’;
try {
$pdo = new PDO;
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo ‘Verbindung fehlgeschlagen: ‘ . $e->getMessage();
}
?>
```
```php
$sql = ‘SELECT * FROM users WHERE email = :email’;
$stmt = $pdo->prepare($sql);
?>
```
```php
$email = ‘example@example.com’;
$stmt->bindValue(‘:email’, $email, PDO::PARAM_STR);
// $stmt->bindParam(‘:email’, $email, PDO::PARAM_STR); // alternative Methode
?>
```
```php
$stmt->execute();
?>
```
```php
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row[‘username’] . ‘
’;
}
// Oder für alle Ergebnisse
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($results as $row) {
echo $row[‘username’] . ‘
’;
}
?>
```
```php
$sql = ‘INSERT INTO users (username, email) VALUES (:username, :email)’;
$stmt = $pdo->prepare($sql);
$username = ‘newuser’;
$email = ‘newuser@example.com’;
$stmt->bindValue(‘:username’, $username, PDO::PARAM_STR);
$stmt->bindValue(‘:email’, $email, PDO::PARAM_STR);
$stmt->execute();
echo ‘Neuer Benutzer eingefügt: ‘ . $username;
?>
```
Diese Schritte und Beispiele sollten dir eine solide Grundlage geben, um vorbereitete Abfragen mit PDO durchzuführen. Die angegebenen PHP-Dokumentationen sind hervorragende Ressourcen, um tiefer in das Thema einzutauchen und weitere spezifische Informationen zu erhalten.