#46858 [Asn->Bgs]: Incorrect isset result on MySQLi_Result properties (only in PHP_5_2)

From: Date: Thu, 27 Aug 2009 10:59:06 +0000
Subject: #46858 [Asn->Bgs]: Incorrect isset result on MySQLi_Result properties (only in PHP_5_2)
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-141614@lists.php.net to get a copy of this message
ID: 46858 Updated by: andrey@php.net 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: andrey@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] jani@php.net 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] jani@php.net 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

« previous php.bugs (#141614) next »