На самом деле ты слишком много пытаешься сделать по ооп. То что тебе надо сделать это грубо говоря фабрику. Одним запросом вытаскиваешь данные из таблички (чаще всего это данные в одной табличке), а потом через конструктоп запуливаешь данные в приватную переменную, а потом геттерами и сеттерами работай.
<?php
class Auto {
private static $_params;
public function __construct ($params)
{
$this->_params = $params;
}
public function getId() {
return isset($this->_params['id']) ? $this->_params['id'] : null;
}
public function getColor() {
return isset($this->_params['color']) ? $this->_params['color'] : null;
}
}
// getDB получаешь данные из таблички $dbAuto = array('id' => 1, 'color' => 'blue', ...);
$auto = new Auto($dbAuto);
$auto->getId();
$auto->getColor();