Но оно не упало т.к. кастомный лог ошибок не видно в консоли
1) скрипт упал из-за того что stmt === null; У него только 1 кейс оказаться нулём судя по коду, это когда мы упадём и ничего не отработает ибо в случае плохой отработки, у него false будет, а не PDOException.
2) по поводу логов, не зная реализации, мы не можем утверждать куда пишутся ошибки. А автор куда-то уже пропал
3) В любой непонятной ситуации есть 2 варича, либо хДебаг, либо покрывать чуть ли не каждый стэп инфо логами, либо что там в консоль будет плевать (да даже на крайняк var_dump)