Hi.
I installed MySQL 5.0.1 (snapshot) and PHP 5.0.2 (compiled
--with-mysql=../mysql-debug-5.0.1-alpha-pc-linux-i686
--with-mysqli=../mysql-debug-5.0.1-alpha-pc-linux-i686/bin/mysql_config).
Your code really doesn't work when I used
$mysqli=mysqli_connect('localhost', 'root','s','test',3807,"/tmp/mysql.sock.gleb.3")
to connect to the server.
But when I changed that to
$mysqli=mysqli_init();
$mysqli->real_connect('localhost', 'root','s','test',3807,"/tmp/mysql.sock.gleb.3");
Everything works fine. It might be a PHP bug. I posted your message with my comments
to [EMAIL PROTECTED]
My code:
<?
$mysqli=mysqli_init();
$mysqli->real_connect('localhost', 'root','s','test',3807,"/tmp/mysql.sock.gleb.3");
//$mysqli=mysqli_connect('localhost', 'root','s','test',3807,"/tmp/mysql.sock.gleb.3");
$ok = $mysqli->multi_query("call test();");
echo $mysqli->info;
//$ok = $mysqli->multi_query("select * from t1;");
//if($ok) {
//echo "<p>OK</p>\n";
//echo $mysqli->mysqli_errno()."\n";
//echo $mysqli->mysqli_sqlstate."\n";
do {
echo "<p>result</p>\n";
$result = $mysqli->store_result();
if($result) {
while ($line = mysqli_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
}
$result->close();
}
} while($mysqli->next_result());
//}
?>
Michael Kofler <[EMAIL PROTECTED]> wrote:
> Hi,
>
> I am using MySQL 5.0.1 (snapshot) and PHP 5.0.2 with mysqli interface
> (latest snapshot) under Linux (SUSE 9.1).
>
> I would like to call a SP using PHP 5, and I want to get back the SELECT
> results.
>
> This is my SP:
>
> CREATE PROCEDURE `test`()
> BEGIN
> SELECT * FROM t1;
> END
>
> From the comments in http://bugs.mysql.com/bug.php?id=2273 I understand I
> have to use mysqli_multi_query if I want to get rowsets from a SP. Fine:
>
> $ok = $mysqli->multi_query("CALL test()");
> if($ok) {
> echo "<p>OK</p>\n";
> do {
> echo "<p>result</p>\n";
> $result = $mysqli->store_result();
> if($result) {
> show_table($result); // shows result details
> $result->close();
> }
> } while($mysqli->next_result());
> }
>
> I don't get any results, $ok is FALSE.
>
> If I instead use the following code, everything works fine, I receive both
> rowsets. So, the PHP code above seems to be ok as long as I don't call a SP.
>
> $ok = $mysqli->multi_query("SELECT * FROM t1; SELECT * FROM t1");
>
> Any ideas? Error in MySQL or in PHP?
>
> Thank you,
>
> Michael Kofler
>
> http://www.kofler.cc/
>
--
For technical support contracts, goto https://order.mysql.com/?ref=ensita
This email is sponsored by Ensita.NET http://www.ensita.net/
__ ___ ___ ____ __
/ |/ /_ __/ __/ __ \/ / Gleb Paharenko
/ /|_/ / // /\ \/ /_/ / /__ [EMAIL PROTECTED]
/_/ /_/\_, /___/\___\_\___/ MySQL AB / Ensita.NET
<___/ www.mysql.com
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]