Vous devez renvoyer le $result uniquement dans le run() méthode :
public function run($sql)
{
$result=$this->_connection->prepare($sql);
$result->execute();
return $result;
}
Retourner le $result->execute(); renvoie true parce que le execute() réussi. Vous devez renvoyer l'état actuel de $result .
Voyez si cela fonctionne.