Bei der Entwicklung von Anwendungen müssen Binärdateien wie Bilder und Audio häufig in der Datenbank gespeichert werden. PHP bietet eine leistungsstarke PDO -Erweiterung (PHP -Datenobjekte), mit der diese Aufgabe sicher und effizient erledigt werden kann. In diesem Artikel wird in Schritten eingeführt, wie Sie über PDO eine Verbindung zur Datenbank herstellen und das Lesen, Schreiben, Aktualisieren und Löschen von Binärdaten erkennen.
Mit PDO ist es sehr einfach, eine Verbindung zu einer Datenbank herzustellen. Das folgende Beispiel zeigt die grundlegende Möglichkeit, eine Verbindung zu einer MySQL -Datenbank herzustellen:
$dsn = 'mysql:host=localhost;dbname=mydb';
$username = 'username';
$password = 'password';
try {
$pdo = new PDO($dsn, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected to database successfully";
} catch (PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
Angenommen, in der Datenbank befindet sich eine Fotosentabelle , die ein Feld foto_data enthält, um Bilddaten zu speichern. Der folgende Code zeigt, wie Sie das Feld lesen und den Bildinhalt ausgeben:
$query = "SELECT photo_data FROM photos WHERE id = :id";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':id', $id);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
$photoData = $result['photo_data'];
header('Content-Type: image/jpeg');
echo $photoData;
Sie können den Inhalt der Datei lesen und in der Datenbank speichern. Das folgende Beispiel zeigt, wie ein lokales Bild in eine Datenbank schreibt:
$photoData = file_get_contents('path/to/photo.jpg');
$query = "INSERT INTO photos (photo_data) VALUES (?)";
$stmt = $pdo->prepare($query);
$stmt->bindParam(1, $photoData, PDO::PARAM_LOB);
$stmt->execute();
echo "Photo data inserted into database successfully";
Wenn Sie die vorhandenen Bilddaten in der Datenbank aktualisieren müssen, können Sie den folgenden Code verwenden, um den Vorgang abzuschließen:
$photoData = file_get_contents('path/to/new_photo.jpg');
$query = "UPDATE photos SET photo_data = ? WHERE id = ?";
$stmt = $pdo->prepare($query);
$stmt->bindParam(1, $photoData, PDO::PARAM_LOB);
$stmt->bindParam(2, $id);
$stmt->execute();
echo "Photo data updated successfully";
Wenn Sie keine aufgezeichneten Bilddaten mehr benötigen, können Sie sie aus der Datenbank löschen:
$query = "DELETE FROM photos WHERE id = :id";
$stmt = $pdo->prepare($query);
$stmt->bindParam(':id', $id);
$stmt->execute();
echo "Photo data deleted successfully";
In diesem Artikel wird der vollständige Prozess der Verwendung von PDO zur Erweiterung des Betriebs von Binärdaten in der Datenbank über den tatsächlichen Code, einschließlich Lesen, Schreiben, Aktualisieren und Löschen, erweitert. Wenn Sie diese Methoden beherrschen, können Sie flexiblere, featurenreiche datengesteuerte Anwendungen wie Bilderbibliotheken, User Avatar-Uploads, Audio- und Videoverwaltung sowie andere Szenarien erstellen.