Lo que pasa es que el isset($result) comprueba la existencia de la variable únicamente, y ciertamente existe, aunque eso no implica que tenga un valor adecuado.
Con sólo cambiar lo siguiente debería bastar:
Código PHP:
Ver original// MAL
// BIEN
if ($result)
// MEJOR
if ($result !== FALSE)
Ejecuta este ejemplo y observa lo que sucede: