ID: 43934
Updated by: [EMAIL PROTECTED]
Reported By: josmessa at uk dot ibm dot com
Status: Open
Bug Type: MySQL related
Operating System: Windows XP
PHP Version: 5.2CVS-2008-01-25 (snap)
New Comment:
The comments on code justify such behavior:
/* Two problems why we throw exceptions here: PHP is typeless
* and hence passing one argument that's not an array could be
* by mistake and the other way round is possible, too. The
* single value is an array. Also we'd have to make that one
* argument passed by reference.
*/
Previous Comments:
------------------------------------------------------------------------
[2008-01-25 11:43:06] josmessa at uk dot ibm dot com
Description:
------------
If an argument that is not an array or null is passed as the $params
(also called $ctor_params in source code) argument in mysql_fetch_object
then the below uncaught exception is returned instead of a normal
warning.
The reproduced code below is similar to that of a test case from 5.3,
although by the time that what I have described above was tested no more
rows were in $res so bool(false) was being returned and so this problem
may also be in 5.3
Reproduce code:
---------------
<?php
//select database and table...
$res = mysql_query('SELECT col1 FROM test');
class mysql_fetch_object_test {
public $a = null;
public $b = null;
public function __construct($a, $b) {
$this->a = $a;
$this->b = $b;
}
public function toString() {
var_dump($this);
}
}
var_dump(mysql_fetch_object($res, 'mysql_fetch_object_test', 'not
array'));
?>
Actual result:
--------------
Fatal error: Uncaught exception 'Exception' with message 'Parameter
ctor_params must be an array' in ...\mysql_fetch_object.php:25
Stack trace:
#0 ...\mysql_fetch_object.php(25): mysql_fetch_object(Resource id #5,
'mysql_fetch_obj...', 'not array')
#1 {main}
thrown in ...\mysql_fetch_object.php on line 25
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=43934&edit=1