Category: php
How to get images out of mysql database with php and use them on my webpages
- PHP Version - PHP 5x
- Mysql Version - 5
This tutorial expands on another database/image how-to How to Store Images in Mysql Database. In the Images In tutorial I showed you the basic steps to opening a file (your image file) and read it into a variable ($img), convert that file using php's base64_encode() function, and stick that file into a Mysql database. Now, you will learn how to bring those images back out of your Mysql database, and output them to a web browser.
Retrieving Images From Mysql Database With php
This Tutorial will cover two different ways of taking images out of a mysql database and rendering them with a php document.
- Create a mysql database with a table matching (Database Example)
- Database name is "test_imgs"
- Table name is pictures
- "id" is primary, key, not null, and auto_increment
- "pics" blob not null
- "ext" is varchar(4) not null
- "gender" is varchar(7) not null
- I will assume English mysql defaults for everything else.
- Practice script "test.php"
- Create a directory on your server and call it "test"
- Create a file named "test01.php" in the test directory, and copy theUploading Images Script to it.
- Copy the following test images and save them in your test folder.
- Create a file named "test02.php", copy the contents of the PHP Image Rendering Script to it, then save it to the test directory.
Database Example
| id | pics | ext | gender |
| 1 | retergfghfghterhgcfnt hy6e5ghjwtjthj |
jpg | female |
The Uploading Images Script, originated in another php tutorial about Putting Images in a Mysql Database.
Uploading Images Script
First Image Rendering Method
PHP Image Rendering Script
This is the first method for rendering database images with php and mysql.
This method determines what type of image it is retrieving from the database, and uses one of the follwoing php functions to render the images to end users.:
Second Image Rendering Method
- Create a file named "test03.php" copy Second Method Script to it. (See below)
- navigate and execute test01.php script
- Next click the next link and go to test_02.php to view your image.
- Now Go back to test02.php PHP Image Rendering Script and comment out all of the php header() functions.
- After commenting out the header() fucntions type test03.php into your browsers nav bar.
Second Method Script
Using the Sctipts
After building the database, and uploading all the example files and images to your server:
testpic.jpg will be sent to your MySql server with an id of "1".
Notice that on the test03.php page, I inserted test_02.php in the img tag. This tells the the client machine to request the pic from the server.
how to upload images and files php Upload Images to Webserver
HTML Form PHP Function
# UPLOAD FILE
function upload_file(){
echo '
Storing image locations mysql Storing Image Url Location in Mysql Database
Storing images in the Mysql Database using php can be done by encoding the whole image with a function called base64enco
retreive images mysql php php How to get images out of mysql database with php and use them on my webpages
Author: D.Shaun Morgan
PHP Version - PHP 5x
register globals long arrays php Security, php.ini, register_globals and register_long_arrays
Author: D.Shaun Morgan
Versions and Skill Level
PHP Version - PHP 5x
how to install php 5 php This is a quick start beginner's how-to manual explaining how to quickly setup a PHP 5 installation on a Windows XP PC. You must have an Apache webserver installed and working on your personal comp

Leave a Comment
retreive_images_mysql_php.php
re:Admin
Check your syntax , and make sure that your php installation supports this image function. Typically if you are wanting to create images in php you will need to have what is call the GD libray installed and available.
Look at the following link:
http://php.net/manual/en/ref.image.php
I have stored images in database.. But while retrieving images, I couldn't get full picture..
Am just getting half of the image only.. This is my code.. Can anyone give me suggestions..
<?php
#connect to mysql server
$link = mysql_connect localhost , root ,
if $link {
die Not connected : . mysql_error
}
$db_selected = mysql_select_db images , $link
if $db_selected {
die Database error : . mysql_error
}
$sql = SELECT FROM testimage where sno=4
#the result of the query
$result = mysql_query $sql or die Invalid query: . mysql_error
while $image = mysql_fetch_assoc $result {
$a=$image[ image ]
$b=$image[ name ]
header Content-type: $b
echo $a
}
?<
Warning: imagecreatefromstring [function.imagecreatefromstring]: Empty string or invalid image
Re:Admin
The most likely reason for this would be that the image that you retrieved from the database was either formatted wrong or most likely in your case -- the string that you passed the imagecreatefromstring() function was null or empty.
Look back over your code and make sure that you are getting the image and using the base64decose function before passing it.
Insertion happened successfully...but while I am selecting I could not view the image.
I can view a corrupted image.
regards
Andrews
Re: Admin
Could be the gd library module in your PHP installation. When retrieving an image and displaying it you can either write a piece of code to send the proper headers to your web browser or you could just recreate the image into your file system, as a temporary file and link to it with regular HTML. The latter probably incurring more of a performance hit.
, filesize $testpic
fclose $handle
Re: Admin
Did you create an html page and point your " img src " to the page where the image retrieval code is living? Have you checked your PHP install for gd support? are you certain that you retrieved anything from your database? Look in your database and make sure the image got saved. You should see a string of charcacters. That is the bas64encoding. when you take that back of your database you will convert it back to a string and pass that into an image creation function.
$db_img = base64_decode($db_img); //print_r($db_img );
$db_img = imagecreatefromstring($db_img);
header("Content-Type: image/jpeg");
imagejpeg($db_img);
respectivley.
then
point your img src tag to the file that has the file retrieval code.
img src=location of img retrieval code
Warning: imagecreatefromstring [function.imagecreatefromstring]: Data is not in a recognized format
when i printed the $db_img i got :
please help urgent
Re: Admin
make sure you used the base64_decode function before the imagecreatefromstring