Primero que nada, aumentá el nivel de reporte de errores por pantalla, para ver qué error da.
Código PHP:
ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);
Segundo, el código la verdad esta bastante feo
Fijate de poner una excepción o algo cuando pasa por la línea que da error. Por ejemplo:
Código PHP:
try{
$stmt->execute();
$link = null;
}
catch(PDOException $ex){
throw new Exception($ex->getMessage());
}
Lo que hace $stmt->execute() es ejecutar la consulta.
Podes hacer así también para que te de los datos en una variable:
$row = $stmt->fetch(PDO::FETCH_OBJ);
luego haces $row->id, siendo id el nombre de una columna de la tabla.
Saludos y suerte!