ID: 31175 Updated by: [EMAIL PROTECTED] Reported By: vortexx at freemail dot hu -Status: Open +Status: Feedback Bug Type: MySQL related Operating System: Windows 2000 Server, SP4 PHP Version: 5.0.3 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip Previous Comments: ------------------------------------------------------------------------ [2005-02-02 07:36:36] vortexx at freemail dot hu "a) The table is empty or the where clause didn't match any records " Table was not empty, and there was no WHERE clause. Moreover, the exact same query prodiced the expected results with PHP versions prior to 5.0.3. "b) an error occured, which should be checked by mysql_error() - in your case probably illegal mix of collations." Did test for an error - please see my original bug report: none occurred, at least mysql_error returned none. Also please note: same query (on the exact same database, etc.) works fine with PHP versions prior to 5.0.3 . I suspected perhaps this had something to do with the new php_mysql.dll included with the new (5.0.3+) PHP versions?! Since - ceteris paribus - the anomaly was directly linked to changing PHP versions. Once I changed back to the older version, it all worked fine again. If there is any more info whatsoever that you think might be necessary, please let me know! THANKS!!! ------------------------------------------------------------------------ [2005-02-02 06:48:46] [EMAIL PROTECTED] If mysql_query doesn't return a resultset for a select statement this has 2 reasons: a) The table is empty or the where clause didn't match any records b) an error occured, which should be checked by mysql_error() - in your case probably illegal mix of collations. Can't reproduce your error (tested with PHP 4 + 5, MySQL 4.1.10 and 5.0.3 and different character sets on server and client side). ------------------------------------------------------------------------ [2005-02-02 03:58:43] vortexx at freemail dot hu Sorry, but what do you mean "can't reporduce"? That you: - need more info to be able to do so? If so, please fire away, let me know what else you need, I would be glad to provide any info necessary - tried to reprodice but given the same circumstances the same code worked fine for you? Since this is MySQL related obviously I cannot "copy and paste" the MySQL tables themselves here. I can only give info as to the nature of tables involved. To reporoduce just try ANY MySQL query in PHP 5.0.3+ with a CONCAT of a field from a table plus a string: SELECT CONCAT('this is a string',field_from_table) as test FROM whatever_table The point is that whenever a SELECT with a CONCAT of a string and a table field is involved, the query returns nothing. If it's just a CONCAT of 2 or more fields from a table, then it's fine. If it's a CONCAT of 2 or more strings, no problem. As soon as it is a string plus a field, no results are returned. BEFORE 5.0.3 the same queries all worked just fine. Is this any help? If not, please let me know what info I should send! ------------------------------------------------------------------------ [2005-01-29 21:10:35] [EMAIL PROTECTED] Can't reproduce. Check your code and provide more info if you're still experiencing this problem. ------------------------------------------------------------------------ [2004-12-18 05:53:25] vortexx at freemail dot hu Description: ------------ When a query containing CONCAT(...) with a string plus a reference to a certain database field is run via PHP, no results and nop errors are returned. The exact same query run via MySQL commandline returns results as expected. With 5.0.2 the exact same script (with ALL PHP configs the same, even the same PHP.INI) returns results as expected. Thus I believe this is not MySQL related but rather related to PHP5.0.3 and the php_mysql.dll included with it?! I also tried the latest PHP snapshot, but the same thing happens. Not sure what other info might be relevant and needed, I would be glad to provide whatever info you may find necessary. Reproduce code: --------------- <% /// Omitting the mysql_connect part of the code...! /// This returns no results under PHP5.0.3, /// while under PHP5.0.2 it returns results as expected. $query = "SELECT CONCAT(tel,'blabla') as tel from hotels where id='$id'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); print_r($row); /// This, however, works! /// Difference is that two ***fields*** are CONCAT-ed. $query = "SELECT CONCAT(tel,name) as tel from hotels where id='$id'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); print_r($row); /// This also works! /// This time two ***strings*** are CONCAT-ed. $query = "SELECT CONCAT('just test','blabla') as tel from hotels where id='$id'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); print_r($row); %> Expected result: ---------------- I should get the telephone number of the hotel joined with the string "blablabla". Actual result: -------------- Get no results from the MySQL query, but no errors either (MySQL or PHP). ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31175&edit=1