Bom, aparentemente está acontecendo algum erro na query e o código não está preparado para lidar com esses problemas...
Podemos tentar umas coisas pra continuar procurando o erro, entretanto.
Dentro desse deste método que você citou, será que você poderia buscar e substituir a linha (estará na 46 se não estou enganado):
$this->data = $this->getDatabaseHandler()->query('SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string)->fetch();
por isso:
$querySql = 'SELECT ' . implode(', ', $fieldsArray) . ' FROM ' . $this->getDatabaseHandler()->tableName(self::$table) . ' WHERE ' . $search_string;
$query = $this->getDatabaseHandler()->query($querySql);
if ($query !== false) {
$this->data = $query->fetch();
}
else {
echo '<pre>';
print_r($querySql);
echo '</pre>';
echo '<pre>';
print_r($query);
echo '</pre>';
die();
}
Após a substituição, poderia tentar reproduzir o erro novamente e nos dizer/postar o que aconteceu?
A tela provavelmente ficará branca e mostrará o SQL que o PHP tentou executar e que acabou gerando o erro e também o objeto que está lidando com a query. Assim podemos analisar melhor a situação.