ID: 33233 User updated by: blockcipher at yahoo dot com Reported By: blockcipher at yahoo dot com -Status: Feedback +Status: Open Bug Type: SimpleXML related Operating System: Windows 2000 PHP Version: 5.0.4 New Comment:
There was no difference in behavior. Previous Comments: ------------------------------------------------------------------------ [2005-06-03 21:23:28] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-STABLE-latest.tar.gz For Windows: http://snaps.php.net/win32/php5.0-win32-latest.zip ------------------------------------------------------------------------ [2005-06-03 20:14:41] blockcipher at yahoo dot com Here's a quick test case based on the problem. It demonstrates the changing of the data type from an object to a string, but not the crash. <?php $xmltext = "<?xml version='1.0'?><body><user>test</user></body>"; $xmlObj = simplexml_load_string($xmltext); $tempArray['username'] = $xmlObj->user; $dbh = new mysqli('localhost','username','password','mysql'); $stmt = $dbh->prepare('select host from user where user = ? LIMIT 1'); print "Before: "; var_dump($tempArray); print "<br/><br/>Result: "; $stmt->bind_param('s', $tempArray['username']); $stmt->execute(); $stmt->bind_result($temp); $stmt->fetch(); $stmt->close; print "$temp<br/><br/>After: "; var_dump($tempArray); $dbh->close; ?> ------------------------------------------------------------------------ [2005-06-03 16:06:01] blockcipher at yahoo dot com Description: ------------ It appears that I found an interesting interaction between the simple_xml library and the mysqli_bind_param function. The values contained within an XML tag are returned as simple_xml object, not strings (which is what I inferred from the Zend tutorial.) This had an adverse side-effect when combined with the mysqli_bind_param function. Please note that this may affect other functions/libraries as well. The steps are as follows: 1. Copy the value of an XML element into a variable. 2. Use the element in a prepared mysqli statement, binding it to the statement as a string. 3. Run the query. 4. Repeat steps 2 and 3, possibly with a different query. After the bind or perhaps after I was done with the query, the actual data was changed from a simple_xml object to a very odd looking string. This would crash the apache web server approximately 80-90% of the time when accessed. Original variable data: ["username"]=> object(SimpleXMLElement)#3 (1) { [0]=> string(4) "test" } Modified variable data: ["username"]=> string(64) "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 " Reproduce code: --------------- No code provided since it is being developed for the company I work for. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=33233&edit=1