It is very easy to work with MySQL queries and PHP and it's nearly as easy to process more than one SQL statement at the same time. Just use the mysqli multi_query method.
It’s very easy to send SQL queries to a MYSQL database and process the results. However, running a number of queries one after another can be time consuming and memory intensive.
Fortunately PHP enables the programmer to run a number of queries at the same time and then process the returned results one record set at a time. The PHP programmer does this by using PHP’s mysqli object and its multi_query method.
Sending Multiple Queries to MySQL from PHP
Rather than repeatedly sending queries to the database it is possible to send a number of them at the same time. The first step, as always, is to instantiate the mysqli object:
$user = "db_user";
$user_password = "db_password";
$db_name = "db_demo";
$db = new mysqli ("localhost", $user, $user_password, $db_name);
With the connection in place the next stage is to create a string consisting of several SQL statements (remembering to separate each of them with a semi-colon):
$sql = "insert into articles
(title, url)
values
('Creating a Distributed Web App ',
'https://utopian.io/utopian-io/@alv/creating-a-distributed-web-app-with-javascript-php-and-mysql');";
$sql .= "insert into articles
(title, url)
values
('How to Get User Information with PHP',
'https://utopian.io/utopian-io/@alv/how-to-get-user-information-with-php-use-php-to-ask-a-web-page-user-questions-and-process-the-answers');";
$sql .= "select * from articles";
Then the multi_query method sends the query to the database:
if ($db->multi_query($sql)) {
The PHP programmer will then need to process the results returned from the multiple queries. This is, of course, slightly more involved than handling a single query because more than one record set may be returned.
Processing the Results from Multiple Queries
When the PHP programmer processes the results from their queries they must:
- Step though the record sets by using the next_result method
- Load the current record set by using the store_result method
The end result is something like:
echo "<table width=100%>";
while ($db->next_result()) {
if ($resultset = $db->store_result()) {
while ($record = $resultset->fetch_array(MYSQLI_BOTH)) {
echo "<tr>
<td>" . $record['title'] . "</td>
<td>" . $record[2] . "</td>
</tr>";
}
$resultset->free();
}
}
echo "</table>";
} else {
echo $db->error . "<br>";
}
Here only one recordset will be returned and processed (since only a single select statement is being used).
Summary
The PHP programmer sends queries to a MySQL programmer by creating a mysqli object. This object connects to the database and then accepts a single SQL statement via the query method. Multiple SQL statements can be sent to the database but this time programmer must use the multi_query method. The result of each query depends on the type of query sent.
Only select statements return a set of records. All queries return true or false depending on the query’s success or failure. Once the PHP application has received the record set then the results can be processed and presented to the web page user or used elsewhere in the application itself.
Posted on Utopian.io - Rewarding Open Source Contributors
By Using PHP to Process is More valuable than One SQL Statement at the Same Time, this is also best and informative
Nice article. Learned something new today.
Thanks for the informative article! I'm still learning PHP & MySQL and it answered all of my questions. :)
Really nice...
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @alv I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x