ID:               47928
 Updated by:       [email protected]
 Reported By:      jjuergens at web dot de
-Status:           Assigned
+Status:           Bogus
 Bug Type:         MySQLi related
 Operating System: *
 PHP Version:      5.*, 6CVS (2009-04-19)
 Assigned To:      mysql
 New Comment:

Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions.  Due to the volume
of reports we can not explain in detail here why your report is not
a bug.  The support channels will be able to provide an explanation
for you.

Thank you for your interest in PHP.

This is indeed an issue with the MySQL cLient library. It works
properly when using mysqlnd with 5.3 (--with-mysqli=mysqlnd) or when
using MySQL's Connector/C, which is a standalone version of libmysql
distributed witohut the server.

I didn't try using a current vcersion of libmysql bundled with the
server.


Previous Comments:
------------------------------------------------------------------------

[2009-04-19 16:19:58] [email protected]

In PHP_5_3 / HEAD the crash happens with any BLOB/TEXT types.
(due to mysqli_api.c:398)

This might be also a MySQL bug since it seems to set MYSQL_TYPE_BLOB 
always for any blob column.

------------------------------------------------------------------------

[2009-04-19 15:14:49] [email protected]

Here's better reproduce data (the longtext column has to have enough 
data to cause crash):

drop database crashtest; create database crashtest; use crashtest;
create table crash ( test longtext );
insert into crash set test='
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
12345678901234567890123456789012345678901234567890
';
grant select on crashtest.* to 'test'@'localhost';


------------------------------------------------------------------------

[2009-04-19 14:44:29] jjuergens at web dot de

Yeah, you're right: Soon as I change the column-type from longtext to
text, PHP doesn't crash anymore. The example you provided also crashes
on my debug-enabled PHP-Version, while the Opensuse-Version (with
Suoshin-Patch) throws efree()-errors until there are more than 396
characters in the textfield.
I actually tried to debug the PHP-code some (with very limited
knowledge) and I think that the problem is somewhere within the binding
of the resultset since thats where the script stops.

------------------------------------------------------------------------

[2009-04-19 14:11:14] [email protected]

See also bug #46808


------------------------------------------------------------------------

[2009-04-19 14:07:02] [email protected]

Here is the shortest possible test I could come up with:

<?php

/* Test database and table with data:
drop database crashtest; create database crashtest; use crashtest;
create table crash ( test longtext );
insert into crash set test='123456789';
grant select on crashtest.* to 'test'@'localhost';
*/

$dbLink=new mysqli("localhost","test","","crashtest",3306);
$stmt=$dbLink->prepare("SELECT test FROM crash");
$stmt->execute();
$stmt->bind_result($foo);
while($stmt->fetch());
$stmt->close();
?>

The problem seems to be with the longtext column. If that is changed 
to text column, everything works just fine.


------------------------------------------------------------------------

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/47928

-- 
Edit this bug report at http://bugs.php.net/?id=47928&edit=1

Reply via email to