Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
For 2023 - we are now fully retired from IT training.
We have made many, many friends over 25 years of teaching about Python, Tcl, Perl, PHP, Lua, Java, C and C++ - and MySQL, Linux and Solaris/SunOS too. Our training notes are now very much out of date, but due to upward compatability most of our examples remain operational and even relevant ad you are welcome to make us if them "as seen" and at your own risk.

Lisa and I (Graham) now live in what was our training centre in Melksham - happy to meet with former delegates here - but do check ahead before coming round. We are far from inactive - rather, enjoying the times that we are retired but still healthy enough in mind and body to be active!

I am also active in many other area and still look after a lot of web sites - you can find an index ((here))
Uploading to a MySQL database through PHP - examples and common questions

One of the most popular pages on the technical part of our web site relates to the uploading of images to a server from a local disc file via a browser, then storing those images on a database, and displaying them later. Another popular page relates to the same thing with .pdf file - and really the two requirements are the same technically - a piece of data that's to be treated as an indivisible block by the server - a "blob" or binary large object in database terms - is to be uploaded, stored are then returned back later.

We have two examples that I'll point you at. The first does the whole thing in one program, and is documented in our solution centre. It's here and the demonstration - in this case - uses .jpg image files. The second example has been split into three parts which makes it much easier for the newcomer to take in - an initial form, then a script to store the binary data in a database and finally a script to return something from the database. This example uses a .pdf file.

We've even provided facilities for you to try out our scripts - see here for the image uploader and there's another script to search the image database based on the picture description here. The .pdf uploader demo starts here.

You'll find a whole load of user comments on the bottom of the .jpg image script, but I still get a lot of questions relating to how it works. That's no big surprise really - the script is quite short, but it makes use of a lot of PHP and MySQL facilities that aren't covered on many courses on the subject (as this is an example from our course you can be assured we'll cover it if relevant to even one member of the group. And many of the questions are about failing uploads - again, no big surprise as in order for our script yo work, file upload needs to be configure "in" on the PHP server, a temporary directory assigned as appropriate as it probably won't be there by default on windows boxes, file permissions need to be set, a database needs to be set up and user name and passwords changed ... and if a newcomer misses any of the vital steps out it won't work.

Advise on sorting this out? I'm going to finish this article by reproducing a couple of paragraphs just written to a gent who was reporting zero length blobs in his database ...

"""The two most likely problems are that you don't have write permission set to allow for the web server to write the temporary disc files created, or that the directory in which they are to be written does not even exist. Judging by the fact that you are quoting the name of my blob field, I think you've pretty much copied the code from my site (and that's OK - that's what it's there for) but that makes it slightly less likely that it's too much of a coding error. Of course, without seeing your code / configuration details (I don't even know you're hosting server's operating system!) I can only guess in the dark!"""

"""Take it step by step - look at the temporary files to see that they're uploaded, look at the variable that hold the string to be put into the database and check that's non-zero along the way - then you'll have the process split into three pieces and will be able to find which one is the first one that's failing"""
(written 2008-03-02, updated 2013-01-02)

Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
S156 - Interfacing Applications to MySQL Databases
  [104] mysql_connect or mysql_pconnect in PHP? - (2004-10-30)
  [644] Using a MySQL database from Perl - (2006-03-13)
  [663] Python to MySQL - (2006-03-31)
  [723] Viewing images held in a MySQL database via PHP - (2006-05-17)
  [1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
  [1450] Easy selection of multiple SQL conditions from PHP - (2007-11-30)
  [1518] Downloading data for use in Excel (from PHP / MySQL) - (2008-01-25)
  [1885] Hiding a MySQL database behind a web page - (2008-11-15)
  [2263] Mysqldump fails as a cron job - a work around - (2009-06-30)
  [2381] Checking the database connection manually - (2009-08-28)
  [2745] Connecting Python to sqlite and MySQL databases - (2010-04-28)
  [2790] Joining a MySQL table from within a Python program - (2010-06-02)
  [3035] How to display information from a database within a web page - (2010-11-07)
  [3099] Perl - database access - DBD, DBI and DBIx modules - (2010-12-22)
  [3447] Needle in a haystack - finding the web server overload - (2011-09-18)
  [3455] MySQL, MySQLi, PDO or something else - how best to talk to databases from PHP - (2011-09-24)
  [4436] Accessing a MySQL database from Python with mysql.connector - (2015-02-21)

H113 - Using MySQL Databases in PHP Pages
  [515] MySQL - an FAQ - (2005-12-03)
  [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)
  [666] Database design - get it right from first principles - (2006-04-02)
  [915] Paging through hundreds of entries - (2006-11-05)
  [937] Display an image from a MySQL database in a web page via PHP - (2006-11-22)
  [947] What is an SQL injection attack? - (2006-11-27)
  [1010] Dates, times, clickable diarys in PHP - (2006-12-28)
  [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)
  [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)

Back to
HST Power Car TravelWatch SouthWest
Previous and next
Horse's mouth home
Forward to
Java Compiler - needs all classes, compiles them all too
Some other Articles
Languages compared - based on developer community size
Default file (MiMe types) for Apache httpd and Apache Tomcat
Guidlines for posting on a forum
Java Compiler - needs all classes, compiles them all too
Uploading to a MySQL database through PHP - examples and common questions
HST Power Car TravelWatch SouthWest
Calling on Melksham / Trowbridge / Devizes / Chippenham businesses
Getting somewhere with the train service
Trying out our Java examples on our web site
Java - a demonstration of inheritance on just one page
4759 posts, page by page
Link to page ... 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 at 50 posts per page

This is a page archived from The Horse's Mouth at http://www.wellho.net/horse/ - the diary and writings of Graham Ellis. Every attempt was made to provide current information at the time the page was written, but things do move forward in our business - new software releases, price changes, new techniques. Please check back via our main site for current courses, prices, versions, etc - any mention of a price in "The Horse's Mouth" cannot be taken as an offer to supply at that price.

Link to Ezine home page (for reading).
Link to Blogging home page (to add comments).

You can Add a comment or ranking to this page

© WELL HOUSE CONSULTANTS LTD., 2023: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/mouth/1561_Upl ... tions.html • PAGE BUILT: Sun Oct 11 16:07:41 2020 • BUILD SYSTEM: JelliaJamb