| Bug #31526 | mysqli_stmt_bind_param with SELECT crashes Apache2 | ||||
|---|---|---|---|---|---|
| Submitted: | 13 Jan 2005 6:48am UTC | Modified: | 5 Feb 2005 7:33am UTC | ||
| From: | wyatt dot mike at gmail dot com | Assigned to: | georg | ||
| Status: | Bogus | Category: | MySQLi related | ||
| Version: | 5.0.3 | OS: | Windows XP SP2 | ||
| Votes: | 1 | Avg. Score: | 4.0 ± 0.0 | Reproduced: | 1 of 1 (100.0%) |
| Same Version: | 1 (100.0%) | Same OS: | 1 (100.0%) | ||
[4 Feb 2005 3:05pm UTC] georg@php.net
[4 Feb 2005 4:05pm UTC] georg@php.net
It's a bug in libmysql (cli_stmt_execute). I will check if fix for will go in upcoming 4.1.10 release - otherwise I will try to provide a workaround for mysqli.
[5 Feb 2005 7:33am UTC] georg@php.net
Mike, thank you for your bug report. It will be fixed in libmysql (see http://bugs.mysql.com/bug.php?id=8330) Changed status to bogus (not a PHP bug)!

Description: ------------ the tables contain two fields, each with 10000 rows where the names are just 10-digit numbers when I use the mysqli_stmt_bind_param, I get the 'memory could not be "read"' error, when not used I get no error Reproduce code: --------------- <?php $db = new mysqli("localhost","root","","test"); $tables = array('t_0','t_1','t_2','t_3','t_5','t_all'); foreach($tables AS $table){ $stmt[$table] = $db->stmt_init(); $stmt[$table]->prepare("SELECT id, name FROM " . $table . " WHERE name = ?"); $stmt[$table]->bind_param('i',$name); } for($i = 0;$i < 10;$i++){ $name = ""; for($j = 0;$j < 10;$j++){ $name .= rand(0,9); } foreach($tables AS $table){ $stmt[$table]->execute(); } } $db->close(); ?> Actual result: -------------- 'The instruction "0x00df82df" referenced memory at "0x0000000064". The memory could not be "read".'