Chciałem tylko dodać do tego, miałem podobne frustracje z powodu braku komunikatu o błędzie.
Aby uniemożliwić cichą awarię PDO, możesz ustawić tryb błędu w połączeniu PDO.
$dbh = new PDO();
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Istnieje również PDO::ERRMODE_WARNING
jeśli chcesz błędów, ale nadal kontynuuj.