ID: 46858 Updated by: [email protected] Reported By: eric at livejournal dot dk -Status: Assigned +Status: Bogus Bug Type: MySQLi related Operating System: * PHP Version: 5.2.9 Assigned To: andrey New Comment:
Interesting, I find this bogus, as if the query has failed $result won't be an object but a boolean value. Here is the real bug, a Zend Engine bug: and...@winnie:/work/mysql-server/mysql-5.1/sql$ php -r '$a=true;var_dump($a);var_dump(isset($a->b));' bool(true) bool(false) It doesn't fail although $a is not an object. Previous Comments: ------------------------------------------------------------------------ [2009-04-13 17:26:22] [email protected] Andrey, any possibility to fix this also in PHP_5_2 ? (See bug #44352) ------------------------------------------------------------------------ [2008-12-31 16:11:47] eric at livejournal dot dk The property doesn't exist if the query failed. I realise I could simply check the error member, but I figured I'd still report it because IMO a bug exists - isset incorrectly returns false. ------------------------------------------------------------------------ [2008-12-18 15:28:28] [email protected] Why do you test if that property exists anyway? It's always there, you don't need to test for that. :) ------------------------------------------------------------------------ [2008-12-13 16:46:02] eric at livejournal dot dk Description: ------------ isset returns false when applied to a MySQLi_result object that does indeed exist. Reproduce code: --------------- <?php $db = new mysqli('localhost', 'test', 'test', 'test'); $result = $db->query('SELECT * FROM test;'); //contains 1 row echo $result->num_rows; if (isset($result->num_rows)) echo 'defined'; else echo 'undefined'; ?> Expected result: ---------------- 1defined Actual result: -------------- 1undefined ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46858&edit=1
