#50875 [Com]: Objects loaded using PDO are *empty* when the __construct method is called
ID: 50875
Comment by: contact at weirdog dot com
Reported By: contact at weirdog dot com
Status: Feedback
Bug Type: PDO related
Operating System: Linux
PHP Version: 5.2.12
New Comment:
There are no binaries snapshots currently available. I tried with the
QA Release of PHP 5.2 (5.2.13RC2) and it doesn't work either, which
might not be surprising since the snapshot is older than the modified
status date of the bug report.
Previous Comments:
------------------------------------------------------------------------
[2010-02-15 23:00:00] felipe@php.net
Please try using this snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
------------------------------------------------------------------------
[2010-02-11 23:29:26] michael at twofishcreative dot com
See this post to the PHP internals list, and follow ups, about this
change http://news.php.net/php.internals/46748.
------------------------------------------------------------------------
[2010-01-28 20:17:13] contact at weirdog dot com
Description:
------------
Objects loaded using PDO are *empty* (as in "they have no properties")
when the __construct() method is called.
This was not the case before version 5.2.12. Usualy, properties loaded
from the database where already applyed when the __construct() method
was called.
This is really annoying since further initialisation during the
__construct() method is now impossible.
Reproduce code:
---------------
class WdActiveRecord
{
public function __construct()
{
var_dump($this);
}
}
$stmt = $db->query('SELECT * FROM nodes WHERE nid = 498');
$stmt->fetchObject('WdActiveRecord');
Expected result:
----------------
object(site_pages_WdActiveRecord)[68]
public 'nid' => string '498' (length=3)
public 'parentid' => string '0' (length=1)
public 'pattern' => string 'about' (length=5)
public 'weight' => string '9' (length=1)
public 'layout' => string 'page' (length=5)
public 'location' => string '' (length=22)
public 'is_navigation_excluded' => string '0' (length=1)
public 'is_restricted' => string '0' (length=1)
public 'uid' => string '9' (length=1)
public 'title' => string 'À propos' (length=16)
public 'slug' => string 'apropos' (length=15)
public 'created' => string '2009-11-29 18:13:17' (length=19)
public 'modified' => string '2009-11-29 18:17:29' (length=19)
public 'constructor' => string 'site.pages' (length=10)
public 'is_online' => string '1' (length=1)
public 'language' => string '' (length=0)
public 'tnid' => string '0' (length=1)
public 'is_translation_deprecated' => string '0' (length=1)
Actual result:
--------------
object(site_pages_WdActiveRecord)#68 (0) { }
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=50875&edit=1
Thread (6 messages)