There's lots of clever scripts around to tell you how to get images in and out of databases, but nothing simple to show you the principles of including such an image via (say) PHP in a web page. So here goes.
you need TWO URLs - you need the HTML page that's going to contain the image, AND you need a second URL - PHP in my example - that's going to retrieve the image and feed it out as part of the page. You CANNOT feed out both the HTML and the image from the same http request.
Here's a sample HTML page we're going to include an image in:
<html>
<head>
<title>Demo of Database Image in a page</title>
</head>
<body>
Here is your picture:<br>
<img src=picscript.php?imname=potwoods><br>
Example by Well House Consultants
</body>
</html>
Then you need the PHP script - called picscript.php in the same directory in my example:
<?php
mysql_connect("localhost","wellho","xxxxxxx");
mysql_select_db("wellho");
$image = stripslashes($_REQUEST[imname]);
$rs = mysql_query("select * from im_library where filename=\"".
addslashes($image).".jpg\"");
$row = mysql_fetch_assoc($rs);
$imagebytes = $row[imgdata];
header("Content-type: image/jpeg");
print $imagebytes;
?>
If you want to try it out, then the HTML page is
here.
Want to take this further?
As a next step, I would validate the connection after the mysql_connect, and check that an image really had been returned by the mysql_query ... substituting a default image if not.
We host a complete working example of image upload, save to database, select from database and display all via a PHP script. See
article on the subject
There's a
forum discussion here.
(written 2006-11-22, updated 2008-05-04)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
S154 - MySQL - Designing an SQL Database System [59] MySQL - Pivot tables - (2004-09-22)
[361] Binary Large Objects or bars - (2005-06-27)
[375] Oops - I got my initial database design wrong - (2005-07-12)
[494] MySQL - a score of things to remember - (2005-11-12)
[515] MySQL - an FAQ - (2005-12-03)
[666] Database design - get it right from first principles - (2006-04-02)
[918] Databases needn't be frightening, hard or expensive - (2006-11-08)
[945] Code quality counts - (2006-11-26)
[1423] MySQL - table design and initial testing example - (2007-11-06)
[1575] Database design for a shopping application (MySQL) - (2008-03-15)
[1771] More HowTo diagrams - MySQL, Tomcat and Java - (2008-08-24)
[2053] What a difference a MySQL Index made - (2009-02-25)
[2085] MySQL - licensing issues, even with using the name - (2009-03-16)
[2204] Images in a database? How big is a database? (MySQL) - (2009-05-28)
[2749] Delegate Question - defining MySQL table relationships as you create the tables - (2010-05-02)
[3270] SQL - Data v Metadata, and the various stages of data selection - (2011-04-29)
[3361] Blowing our own trumpet - MySQL resources - (2011-07-18)
[3494] Databases - when to treat the rules as guidelines - (2011-10-23)
[4426] FileMaker Day to Unix Time conversion - (2015-02-15)
H999 - Additional PHP Material [54] PHP and natural sorting - (2004-09-19)
[239] What and why for the epoch - (2005-03-08)
[320] Ordnance Survey - using a 'Get a map' - (2005-05-22)
[322] More maps - (2005-05-23)
[337] the array returned by preg_match_all - (2005-06-06)
[372] Time calculation in PHP - (2005-07-08)
[468] Stand alone PHP programs - (2005-10-18)
[483] Double Dollars in PHP - (2005-11-02)
[493] Running a Perl script within a PHP page - (2005-11-12)
[563] Merging pictures using PHP and GD - (2006-01-13)
[603] PHP - setting sort order with an associative array - (2006-02-13)
[665] PHP Image viewing application - (2006-04-01)
[687] Presentation, Business and Persistence layers in Perl and PHP - (2006-04-17)
[789] Hot answers in PHP - (2006-07-02)
[806] Check your user is human. Have him retype a word in a graphic - (2006-07-17)
[822] PHP - a team member leaves - (2006-08-04)
[839] Reporting on the 10 largest files or 10 top scores - (2006-08-20)
[917] Syntax checking in PHP - (2006-11-07)
[1010] Dates, times, clickable diarys in PHP - (2006-12-28)
[1020] Parallel processing in PHP - (2007-01-03)
[1053] Sorting people by name in PHP - (2007-01-26)
[1104] Drawing dynamic graphs in PHP - (2007-03-09)
[1194] Drawing hands on a clock face - PHP - (2007-05-19)
[1270] PHP Standalone - keyboard to screen - (2007-07-18)
[1389] Controlling and labelling Google maps via PHP - (2007-10-13)
[1390] Converting from postal address to latitude / longitude - (2007-10-13)
[1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
[1451] More PHP sample and demonstration programs - (2007-12-01)
[1485] Copyright and theft of images, bandwidth and members. - (2007-12-26)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1519] Flipping images on your web page - (2008-01-26)
[1623] PHP Techniques - a workshop - (2008-04-26)
[2073] Extra PHP Examples - (2009-03-09)
[2215] If nothing, make it nothing. - (2009-06-02)
[2684] Exception handling in PHP - (2010-03-18)
[3118] Arrays of arrays - or 2D arrays. How to program tables. - (2011-01-02)
[3210] Catchable fatal error in PHP ... How to catch, and alternative solutions such as JSON - (2011-03-22)
[4655] Image indexer / thumbnail display scripts in PHP - (2016-02-25)
H309 - PHP - Maps, Graphics and Geographics [1628] Gant charts - drawing them with a PHP script - (2008-05-03)
[1724] addslashes v mysql_real_escape_string in PHP - (2008-07-27)
[1734] All around the world? - (2008-08-03)
[1752] Dynamic maps / geographics in PHP - (2008-08-13)
[1756] Ever had One of THOSE mornings? - (2008-08-16)
[1923] Making it all worthwhile - (2008-12-04)
[1956] Images for Christmas - (2008-12-21)
[2343] World Flags in your PHP pages - (2009-08-10)
[2361] Geocoding - converting address to latitude / Longitude with PHP via Google - (2009-08-14)
[2390] Dynamic / changing images on your web page - (2009-09-01)
[2583] Reducing image size on digital photos - PHP - (2010-01-17)
[2675] Redirecting to your main domain for correct security keys - (2010-03-13)
[2729] Uploading a document or image to its own URL via a browser - (2010-04-18)
[2939] Protecting your images from use out of context - (2010-08-29)
[3027] Server logs - drawing a graph of gathered data - (2010-11-03)
[3133] An image from a website that occasionally comes out as hyroglyphics - (2011-01-14)
[3197] Finding and diverting image requests from rogue domains - (2011-03-08)
[3211] Computer Graphics in PHP - World (incoming data) to Pixel (screen) conversion - (2011-03-24)
[3447] Needle in a haystack - finding the web server overload - (2011-09-18)
[3536] UK Mapping Data - and more to come - under government Open Data measures - (2011-12-03)
[3584] QR codes - graphics images that provide quick phone links - (2012-01-18)
[3734] QR codes with marketing logos embedded - (2012-05-16)
[3817] Fpdf - generating .pdf documents easily from your PHP program - (2012-07-24)
[4178] Where are you? How to write a geosensitive application - (2013-09-18)
[4365] The changing face of Christmas - (2014-12-26)
[4437] Adding a PHP build option, rotating an image based on camera data, and a new look at thumbnails in PHP - (2015-02-22)
H113 - Using MySQL Databases in PHP Pages [104] mysql_connect or mysql_pconnect in PHP? - (2004-10-30)
[572] Giving the researcher power over database analysis - (2006-01-22)
[581] Saving a MySQL query results to your local disc for Excel - (2006-01-29)
[647] Checking for MySQL errors - (2006-03-15)
[723] Viewing images held in a MySQL database via PHP - (2006-05-17)
[915] Paging through hundreds of entries - (2006-11-05)
[947] What is an SQL injection attack? - (2006-11-27)
[1561] Uploading to a MySQL database through PHP - examples and common questions - (2008-03-02)
[1983] Keeping PHP code in database and running it - (2009-01-09)
[2071] Setting up a MySQL database from PHP - (2009-03-08)
[2259] Grouping rows for a summary report - MySQL and PHP - (2009-06-27)
[2320] Helping new arrivals find out about source code examples - (2009-08-03)
[2432] Using print_r in PHP to explore mysql database requests - (2009-10-01)
[2447] MySQL stored procedures / their use on the web from PHP - (2009-10-10)
[2561] The future of MySQL - (2010-01-03)
[2628] An example of an injection attack using Javascript - (2010-02-08)
[3035] How to display information from a database within a web page - (2010-11-07)
[3455] MySQL, MySQLi, PDO or something else - how best to talk to databases from PHP - (2011-09-24)
[4378] What FGW passengers want to talk about / and PHP programming to find out - (2015-01-01)
[4483] Moving from mysql to mysqli - simple worked example - (2015-05-03)
G912 - Well House Consultants - Photography for the Web [97] What makes a professional photographer? - (2004-10-23)
[194] Published Photographer - (2005-01-30)
[546] The relevance of the hairy woodpecker - (2005-12-28)
[553] Keep that image small - (2006-01-03)
[819] My projector has a photo-id - (2006-07-31)
[1087] Telling a story in different ways - (2007-02-20)
[1114] PHP Image upload script - (2007-03-21)
[1185] Themes for the web site - (2007-05-13)
[1188] What shape is your shake? - (2007-05-15)
[1396] Using PHP to upload images / Store on MySQL database - security questions - (2007-10-19)
[1506] Ongoing Image Copyright Issues, PHP and MySQL solutions - (2008-01-14)
[1568] What colour is the season? - (2008-03-08)
[1732] Old pictures and comparisons - (2008-08-01)
[1895] Comparison - with and without flash - (2008-11-20)
[2224] Trowbridge - a missed opportunity? Melksham - into the breach? - (2009-06-08)
[2252] Leaping dog, Leaping horse, copyright of old masters - (2009-06-20)
[2592] Re-using our pictures - (2010-01-21)
[2884] Hotlinked images onto adult material sites - (2010-07-23)
[3104] Catering in Syracuse, the Saigon Cafe, stolen images and Christmas - (2010-12-25)
[3170] How far is something pictured from the camera? - (2011-02-15)
[3402] That spec is a kingfisher ... - (2011-08-21)
Some other Articles
SnaggingWinter at Well House Manor - Open HousesSwipe cards for hotel rooms - Security issuesBratton and Edington new town, WiltshireDisplay an image from a MySQL database in a web page via PHPGlobal, Superglobal, Session variables - scope and persistance in PHPAutumn leaves in Wiltshire - PotterneClustering, load balancing, mod_rewrite and mod_proxyCourse Joining package - updatedA tale of a wee wall