#32928 [Bgs->Opn]: php dies trying to ->bind_result(...)
| From: | dan at yes dot lt | Date: | Fri, 06 May 2005 14:48:36 +0000 |
| Subject: | #32928 [Bgs->Opn]: php dies trying to ->bind_result(...) | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-78711@lists.php.net to get a copy of this message | ||
ID: 32928
User updated by: dan at yes dot lt
Reported By: dan at yes dot lt
-Status: Bogus
+Status: Open
Bug Type: MySQLi related
Operating System: winxp
PHP Version: 5.0.4, 5.0.5-dev
Assigned To: georg
New Comment:
Still crashes for me with latest 5.0.5-dev... Just forgot to write
->execute() in sample.
MySQL version 5.0.4 - may be this is important.
// This works
$db = new mysqli(...);
$st = $db->prepare("SELECT 1 AS test");
$st->execute();
$st->bind_result($x);
$st->fetch();
var_dump($x);
// This crashes
$db = new mysqli(...);
$st = $db->prepare("SELECT 1.23 AS test");
$st->execute();
$st->bind_result($x);
$st->fetch();
var_dump($x);
// This crashes too
$db = new mysqli(...);
$st = $db->prepare("SELECT NULL AS test");
$st->execute();
$st->bind_result($x);
$st->fetch();
var_dump($x);
Previous Comments:
------------------------------------------------------------------------
[2005-05-06 15:43:28] georg@php.net
Doesn't crash here (tested against PHP-5.0.5-dev and PHP-5.1.0-dev) and
returns NULL as expected.
Please reread the documentation on how to work with prepared
statements. It makes no sense to fetch a value from a prepared
statement without executing it before.
------------------------------------------------------------------------
[2005-05-06 08:44:06] dan at yes dot lt
php also dies with latest snapshot
------------------------------------------------------------------------
[2005-05-06 03:14:55] sniper@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.0-win32-latest.zip
------------------------------------------------------------------------
[2005-05-05 15:47:53] dan at yes dot lt
this is not NULL or unbuffered resultset only...
try this:
Reproduce code:
---------------
$st = $db->prepare("SELECT 1.23 AS test");
$st->bind_result($x);
$st->fetch();
var_dump($x);
Expected result:
----------------
float(1.23)
Actual result:
--------------
...FATAL ERROR WITH NO OUTPUT...
or maybe floats are also unsupported ?..
------------------------------------------------------------------------
[2005-05-05 15:41:35] georg@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
Prepared statements return unbuffered resultsets by default,
therefore you have to retrieve all data or close the resultset before
any command to the server.
The last statement doesn't work, cause MYSQL_TYPE_NULL is unsupported
(filed as bug #32956).
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/32928
--
Edit this bug report at http://bugs.php.net/?id=32928&edit=1