Are there times when your PHP will pull a large result set back from MySQL, or have to make a large number of queries, just to further process the data into a relatively small dynamic section of a report? If so, why not have the MySQL do more of the work and return a much shorter, more processes results to the PHP? You can do this with an appropriate stored procedure.
On yesterday's
MySQL course I wrote a series of stored procedure examples ... the "abc" of stored procedures, if you like - there are complete books on the topic! Let's see the results - follow the links if you want to see the code.
This is a very simple stored procedure ... a 'macro' that lets a simple query -
call otc() embedded in your mysqli query method - run a more complex piece of SQL within the MySQL daemon.
See
MySQL stored procedure definition and
PHP source code
Rather than return just a single value, this example returns a complete table of results - in our PHP, we've loped through those results and displayed them in a browser.
See
MySQL stored procedure definition and
PHP source code
You'll want to pass a parameter into your stored procedures ... this example shows how ...
See
MySQL stored procedure definition and
PHP source code
Our final example in this set shows variables, conditionals, loops, a cursor and more ... we've passed back just a single value - kicked back to us by a rather different use of select to what you're used to.
See
MySQL stored procedure definition and
PHP source code
The data that we seeded the tables with is
here, and the same data as a mysqldump file is
here (written 2009-10-10)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
S163 - Stored Procedures in MySQL [2446] Learn about MySQL stored procedures - (2009-10-09)
[2749] Delegate Question - defining MySQL table relationships as you create the tables - (2010-05-02)
H113 - Using MySQL Databases in PHP Pages [104] mysql_connect or mysql_pconnect in PHP? - (2004-10-30)
[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)
[723] Viewing images held in a MySQL database via PHP - (2006-05-17)
[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)
[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)
[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)
Some other Articles
Gypsy saysFamily Gathering at 404, The SpaFour aspects - Chamber, Transport, Courses and HotelMySQL - efficiency and other topicsMySQL stored procedures / their use on the web from PHPSecuring MySQL on a production serverPotted MySQL installationContrasting Cambridge, Bristol and WiltshireVariable storage - Perl, Tcl and Python compared