Before and After: Making Multiple Queries
In
PHP 4, when you need to make more than one query in a row,
youâre forced to call mysql_query( )
once for each query. This often happens when you need
distinct pieces of information from MySQL or when you want to create
a fresh set of tables.
This isnât a big problem when you know your queries
ahead of time, because itâs easy to loop through and
send them to MySQL one at a time. However, for some situations, this
is not the case. For example, youâre writing a PHP
frontend to MySQL, such as phpMyAdmin
(http://www.phpmyadmin.net), and want the
ability to take a database dump and recreate the information.
Without the ability to send the entire dump at once,
youâre required to parse the data into individual
statements. Thatâs not as easy as it sounds, because
you canât just split
on the
semicolon (;
). For example, itâs
perfectly valid to have a line like INSERT INTO users VALUES('rasmus', 'pass;word');
. Since
pass;word
is inside single quotes, MySQL knows it
doesnât signal the end of a statement, but a simple
split
isnât smart enough to
understand this. As a result, youâre effectively
forced to write a MySQL parser in PHP.
The restriction of one query per request is lifted in MySQLi. This
actually wasnât a limitation in PHP, but a deficit
in the protocol used by earlier versions of MySQL. Another benefit of
MySQL 4.1âs updated protocol is the ability to
introduce a mysqli_multi_query( )
function for these types of ...
Get Upgrading to PHP 5 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.