|
Large Objects (LOBs)
At some point in your application, you might find that you need to store
"large" data in your database. Large typically means "around 4kb or
more", although some databases can happily handle up to 32kb before data becomes
"large". Large objects can be either textual or binary in nature. PDO
allows you to work with this large data type by using the
Example #1 Displaying an image from a database This example binds the LOB into the variable named $lob and then sends it to the browser using fpassthru. Since the LOB is represented as a stream, functions such as fgets, fread and stream_get_contents can be used on it.
<?php
Example #2 Inserting an image into a database This example opens up a file and passes the file handle to PDO to insert it as a LOB. PDO will do its best to get the contents of the file up to the database in the most efficient manner possible.
<?php
Example #3 Inserting an image into a database: Oracle Oracle requires a slightly different syntax for inserting a lob from a file. It's also essential that you perform the insert under a transaction, otherwise your newly inserted LOB will be committed with a zero-length as part of the implicit commit that happens when the query is executed:
<?php |