exec($SQL['create1']); // Insert using question mark placeholders $stmt = $DB->prepare($SQL['insert1']); foreach ($data as $row) { $stmt->execute($row); } class Test { public $id, $val, $val2; } $stmt = $DB->prepare($SQL['select']); $stmt->setFetchMode(PDO_FETCH_INTO, new Test); $stmt->execute(); foreach($stmt as $obj) { var_dump($obj); } echo "===FAIL===\n"; class Fail { protected $id; public $val, $val2; } $stmt->setFetchMode(PDO_FETCH_INTO, new Fail); $stmt->execute(); foreach($stmt as $obj) { var_dump($obj); } ?>