ID: 29283 Updated by: [EMAIL PROTECTED] Reported By: divisor at ad69 dot com -Status: Analyzed +Status: Closed Bug Type: MySQL related Operating System: FreeBSD 4.10 PHP Version: 5.0.0 Assigned To: georg New Comment:
This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2004-09-01 22:18:12] corey_gilmore at dpc dot senate dot gov I'm experiencing the same issue as well with Apache 1.3.31 and 2.0.50 on XP SP2 and XP SP1 with PHP 5.0, 5.01 and 5.0-DEV from php5-win32-200408312230.zip. MySQL 4.1a, 4.1.2, 4.1.3 and now 4.1.4. It occurs in a page where I select a large amount of data from one table, process it, and insert it into multiple tables. There are 287 rows returned from the first select, and then 400-500 rows inserted. Line 644 begins with 'if( !$stmt->execute() ) {' Warning: Statement isn't valid anymore in ...\import\contact.class.inc.php on line 644 Error inserting email (#0): INSERT INTO email (EmailType, Email, ContactID) VALUES (?, ?, ?); $sql = "INSERT INTO {$kTABLE_PREFIX}email (EmailType, Email, ContactID) VALUES (?, ?, ?)"; if( !$stmt = $db->prepare($sql) ) { // prepare it printf("Error with %s:<br>%s<br>",$sql, $db->error ); } if( !$stmt->bind_param("ssi", $addr->EmailType, $addr->Email, $ContactID ) ) { printf("Error (#%d): %s;<br>%s<br>%s : %s : %s<br>", $stmt->errno, $sql, $stmt->error, $addr->EmailType, $addr->Email, $ContactID ); } if( !$stmt->execute() ) { printf("Error inserting email (#%d): %s;<br>%s<br>%s : %s : %i<br>", $stmt->errno, $sql, $stmt->error, $addr->EmailType, $addr->Email, $ContactID ); $this->dump(); printf("\$stmt = <pre>%s</pre><br>", var_export($stmt, TRUE) ); } This has been an issue since RC1, and is a bit frustrating. In my case reloading the page to re-import works, eventually, but since the entire process takes about 5 minutes it is painful. ------------------------------------------------------------------------ [2004-08-20 14:47:35] paradox at gmx dot at i've got the same problem with php 5.0.1 loaded as an apache module - mysql 4.1.3beta, win2k it seems that the error occurs more often on much used servers. on my dedicated test-server it is approximately one error on 100 statements. ------------------------------------------------------------------------ [2004-08-03 08:48:09] alex at avannaproductions dot com I'll chime in as another voice of reason: this should be fixed before 5.0.1. At the moment, prepared statements are basically useless, as half the time they give this error and fail to return any data. I'm on MacOS X and Apache 2, with the same problem. ------------------------------------------------------------------------ [2004-07-25 18:33:46] dev at edwinchu dot info Hi, I have got the same problem. I am using PHP5 release with MySQL4.1.3-beta. The code is simple: $mysqli = new mysqli(); // connected successfully $stmt = $mysqli->prepare("SOME VALID QUERY"); $stmt->execute(); // No problem here $mysqli2 = $mysqli; $mysqli2->query("THE SAME QUERY"); // Still OK $stmt2 = $mysqli2->prepare("THE SAME QUERY"); $stmt2->execute(); The last line failed and returning "Warning: Statement isn't valid anymore in xxx". ------------------------------------------------------------------------ [2004-07-21 16:24:11] divisor at ad69 dot com it caused randomly on all statetments, prepare() was ok but execute() failed: if ($stmt=$DB->prepare("select something from table where name=?")) { $stmt->bind_param('s',$name); $stmt->execute(); // HERE PHP WRITE WARNING // AND STMT COINTAIN NO DATA variables stmt->error, stmt->errno are empty that's strange but after removing lines 182-187 from ext/mysqli/php_mysqli.h: if (!strcmp((char *)__name, "mysqli_stmt")) {\ if (!((MYSQL_STMT *)__ptr)->mysql) {\ php_error(E_WARNING, "Statement isn't valid anymore");\ RETURN_NULL();\ }\ }\ } it started working without any problems. but of course this 'hack' of php code isn't good ;) ------------------------------------------------------------------------ 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/29283 -- Edit this bug report at http://bugs.php.net/?id=29283&edit=1