note 51173 modified in function.mysqli-stmt-bind-result by danbrown
| From: | danbrown@php.net | Date: | Fri, 28 Nov 2008 22:37:05 +0000 |
| Subject: | note 51173 modified in function.mysqli-stmt-bind-result by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-147366@lists.php.net to get a copy of this message | ||
A potential problem exists in binding result parameters from a prepared statement which reference
large datatypes like mediumblobs. One of our database tables contains a table of binary image data.
Our largest image in this table is around 50Kb, but even so the column is typed as a mediumblob to
allow for files larger than 64Kb. I spent a frustrating hour trying to figure out why
mysqli_stmt_bind_result choked while trying to allocate 16MB of memory for what should have been at
most a 50Kb result, until I realized the function is checking the column type first to find out how
big a result _might_ be retrieved, and attempting to allocate that much memory to contain it. My
solution was to use a more basic mysqli_result() query. Another option might have been to retype
the image data column as blob (64Kb limit).
--was--
A potential problem exists in binding result parameters from a prepared statement which reference
large datatypes like mediumblobs. One of our database tables contains a table of binary image data.
Our largest image in this table is around 50Kb, but even so the column is typed as a mediumblob to
allow for files larger than 64Kb. I spent a frustrating hour trying to figure out why
mysqli_stmt_bind_result choked while trying to allocate 16MB of memory for what should have been at
most a 50Kb result, until I realized the function is checking the column type first to find out how
big a result _might_ be retrieved, and attempting to allocate that much memory to contain it. My
solution was to use a more basic mysqli_result() query. Another option might have been to retype
the image data column as blob (64Kb limit).
http://php.net/manual/en/function.mysqli-stmt-bind-result.php