MySQL Multiple Result Procs in PHP
Posted on June 1st, 2007 in MySQL, PHP
I thought this might be useful for those of you running MySQL 5+ with stored procedures that return multiple result sets.
<html> <head><title>Stored Procedure Tester - MySQL</title></head> <body> < ?php $sql = ''; $show_results = false; if (isset($_POST['form_submitted'])) { // The form was submitted $sql = $_POST['query']; echo '<p>The query you entered entered was <strong>' . $sql . '</strong>.'; // Change the params to you own here... $mysql = new mysqli('localhost', 'USER', 'PASSWORD', 'DATABASENAME'); if (mysqli_connect_errno()) { die(printf('MySQL Server connection failed: %s', mysqli_connect_error())); } // Check our query results if ($mysql->multi_query($sql)) { $show_results = true; $rs = array(); do { // Lets work with the first result set if ($result = $mysql->use_result()) { // Loop the first result set, reading it into an array while ($row = $result->fetch_array(MYSQLI_ASSOC)) { $rs[] = $row; } // Close the result set $result->close(); } } while ($mysql->next_result()); } else { echo '<p>There were problems with your query [' . $sql . ']:<br /><strong>Error Code ' . $mysql->errno . ' :: Error Message ' . $mysql->error . '</strong></p>'; } $mysql->close(); } echo '<form id="proc_tester" action="' . basename($_SERVER['SCRIPT_FILENAME']) . '" method="post"> <p>Enter your procedure:</p> <p><input type="text" name="query" size="175" maxlength="255" value="' . $sql . '" /></p> <p><input type="hidden" name="form_submitted" value="true" /><input type="submit" name="submit" value="Submit query" /></p> </form>'; if ($show_results) { echo '<pre>'; print_r($rs); echo '< /pre>'; } ?>