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
;). 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
mysqli_multi_query( ) function for
these types of cases.
While this is good news, ...