Binary Large Objects (BLOBs) sind große binäre Objekte wie z. B. Bild- oder Audiodateien.
Datentyp | maximale Dateigröße |
TINYBLOB | 256 Bytes |
BLOB | 64 KB |
MEDIUMBLOB | 16 MB |
LONGBLOB | 4 GB |
Ein mit FPDF erzeugtes PDF in einer MySQL-Datenbank speichern:
$pdf = new PDF(); ... $Binary = $pdf->Output( "", "S" ); // Datei als Zeichenkette ausgeben $SQL = "INSERT INTO Dateien ( Binary ) VALUES ( :BINARY );" $res = $this->DB->prepare( $SQL ); $pdf->Close(); if( $res->execute( array( ":BINARY" => $Binary ) ) ) return true;
PDF-Datei aus Datenbank auslesen:
$SQL = "SELECT Binary FROM Dateien WHERE ID=" . $id; $PDO = $this->DB->query( $SQL ); if( $PDO->rowCount() == 1 ) // wenn die Datei gefunden wurde { $res = $PDO->fetch( PDO::FETCH_OBJ ); header("Content-Type: application/pdf"); header("Content-Description: File Transfer"); header("Content-disposition:inline; filename=PDF_Dokument.pdf"); echo $res->Binary; exit; }
Mit dem folgenden mySQL-Statement werden alle Datensätze ausgegeben, die im BLOB-Feld „PDF“ Daten enthält.
SELECT * FROM Dateien WHERE LENGTH(PDF) > 0;