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 cases.
While this is good news, ...
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.