|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2021-05-06 15:36 UTC] cmb@php.net
[2021-05-06 15:55 UTC] cmb@php.net
[2023-05-02 08:02 UTC] sexanasrobi at gmail dot com
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 06:00:01 2025 UTC |
Description: ------------ I like FETCH_CLASS being able to put stuff in protected properties, but why can't FETCH_INTO do the same (for $this)? Test script: --------------- <?php class User { protected $id; public static function get() { global $db; $q = $db->query("SELECT * FROM User WHERE `id` = 1"); $q->setFetchMode(PDO::FETCH_CLASS, 'User'); return $q->fetch(); } public function load() { global $db; $q = $db->query("SELECT * FROM User WHERE `id` = 1"); $q->setFetchMode(PDO::FETCH_INTO, $this); return $q->fetch(); } } $db = new PDO('sqlite::memory:'); $db->exec("CREATE TABLE User(id INTEGER PRIMARY KEY, name TEXT)"); $db->query("INSERT INTO User VALUES(1, 'test')"); // worko var_dump(User::get()); // no-worko $user = new User; var_dump($user->load()); Expected result: ---------------- Both var_dumps should return the same object Actual result: -------------- object(User)#3 (2) { ["id":protected]=> string(1) "1" ["name"]=> string(4) "test" } Fatal error: Cannot access protected property User::$id in /in/DCjXc on line 24 Process exited with code 255.