Devi restituire il $result solo in run() metodo:
public function run($sql)
{
$result=$this->_connection->prepare($sql);
$result->execute();
return $result;
}
Restituendo il $result->execute(); restituisce true perché execute() successo. Devi restituire lo stato corrente di $result .
Vedi se funziona.