#37884 [Opn->Fbk]: mysqli prepared statement fetch() bug
| From: | andrey@php.net | Date: | Thu, 22 Jun 2006 16:45:19 +0000 |
| Subject: | #37884 [Opn->Fbk]: mysqli prepared statement fetch() bug | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-98667@lists.php.net to get a copy of this message | ||
ID: 37884
Updated by: andrey@php.net
Reported By: fala at gmx dot net
-Status: Open
+Status: Feedback
Bug Type: MySQLi related
Operating System: Debian_2
PHP Version: 5.1.4
New Comment:
Hi,
I wasn't able to reproduce.
Could you add the following to your script and give the output :
var_dump("Client",mysqli_get_client_version(), "Server",
mysqli_get_server_version());
Thanks
andrey@lmy004:~/dev/5_0> sapi/cli/php /tmp/a.php
string(9) "5.0.6-dev"
ID: "64", V1: "2", V2: "0.85000002384186", V3: "1"
andrey@lmy004:~/dev/5_1> sapi/cli/php /tmp/a.php
string(9) "5.1.5-dev"
ID: "64", V1: "2", V2: "0.85000002384186", V3: "1"
andrey@lmy004:~/dev/5_2> sapi/cli/php /tmp/a.php
string(9) "5.2.0-dev"
ID: "64", V1: "2", V2: "0.85000002384186", V3: "1"
andrey@lmy004:~/dev/6_0> sapi/cli/php /tmp/a.php
string(9) "6.0.0-dev"
ID: "64", V1: "2", V2: "0.85000002384186", V3: "1"
Previous Comments:
------------------------------------------------------------------------
[2006-06-22 11:31:32] fala at gmx dot net
Description:
------------
MySQLi prepared statement fetch() returns incorrect values and binds
them in the incorrect order. Code works with PHP 5.0.3, but not with
5.1.4 (5.1.2 was also tested and erronous as well).
The following code shows a sample DB Setup with MySQL 5.0.22 on a
Debian System, and the fetch statement that causes the bug.
Reproduce code:
---------------
CREATE TABLE
foo (
ID int(11) NOT NULL auto_increment,
value_f_1 float NOT NULL default '0',
value_f_2 float NOT NULL default '0',
value_f_3 float NOT NULL default '0',
PRIMARY KEY (ID)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=97 ;
INSERT INTO foo VALUES (64, 2, 0.85, 1);
-------
$sql = 'SELECT ID, value_f_1, value_f_2, value_f_3
FROM foo
WHERE ID = ?';
$stmt = $db->prepare( $sql ) OR die('...');
$stmt->bind_param( 'i', 64 );
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($ID, $value_f_1, $value_f_2, $value_f_3);
$stmt->fetch();
echo 'ID: "'.$ID.'", V1: "'.$value_f_1.'", V2:
"'.$value_f_2.'", V3:
"'.$value_f_3.'"';
Expected result:
----------------
(Output with PHP 5.0.3)
ID: "64", V1: "2", V2: "0.850000023842", V3: "1"
Actual result:
--------------
(Output with PHP 5.1.4)
ID: "64", V1: "4.4847901283E-34", V3: "2", V3:
"0.850000023842"
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=37884&edit=1