[Bug 488600] [NEW] MySQLi Prepared Statements Not Working Correctly With UPDATEs

m00dawg tim at moocowproductions.org
Thu Nov 26 05:58:15 GMT 2009


Public bug reported:

Binary package hint: php5-mysql

When using MySQLi and prepared statements, it seems as though some 
write-based queries (such as UPDATE) end up getting bad values. 
Specifically, items after a WHERE clause are getting values of 0 or 
things like \0\0 where they should be getting a proper ID (such as 
123).

This issue was encountered on Ubuntu 9.10 with PHP 5.2.10. This issue 
does not occur on Ubuntu 9.04 with PHP 5.2.6. Same version of MySQL. 
Same php.ini and my.cnf.

To reproduce:

1. Grab files from: http://www.moocowproductions.org/tmp/test_cases/
2. Run .SQL script through MySQL
3. Enable gereral query log in MySQL
3a. For MySQL 5.0, edit /etc/my.cnf and add 'log' and restart
3b. For MySQL 5.1, run "SET GLOBAL general_log=1"
4. Edit mysqli_bug.php and modify $dbPassword
5. Run mysqli_bug.php
6. Check General Log (See Expected and Actual results)

The expected output of the MySQL general log should be something like:

The MySQL general log should look like this:

		61649 Query	SET sql_mode='TRADITIONAL'
		61649 Query	set autocommit=0
		61649 Prepare	UPDATE t1 SET
	itemID = ? WHERE num1 = ?
		61649 Execute	UPDATE t1 SET
	itemID = 4 WHERE num1 = 5
		61649 Close stmt	
		61649 Query	commit
		61649 Quit

The actual result is:

The log, instead, looks like this:

		  124 Query	SET sql_mode='TRADITIONAL'
		  124 Query	set autocommit=0
		  124 Prepare	UPDATE t1 SET
	itemID = ? WHERE num1 = ?
		  124 Execute	UPDATE t1 SET
	itemID = 4 WHERE num1 = 0
		  124 Close stmt	
		  124 Query	commit
		  124 Quit

(Note that num1 = 0 and it should be 5)

So far, this only appears to be happening with UPDATE queries. SELECTs
do not have this problem, and neither do INSERTs. I did not run into an
issue with DELETEs, though I did not test this thoroughly.

** Affects: php5 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
MySQLi Prepared Statements Not Working Correctly With UPDATEs
https://bugs.launchpad.net/bugs/488600
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to php5 in ubuntu.



More information about the Ubuntu-server-bugs mailing list