Protože MySQL provedlo váš dotaz bez jakýchkoli chyb. Pouze proto, že jste napsali špatný dotaz, to nemusí znamenat, že je dotaz tak špatný, že jej MySQL nepřijme.
Kdykoli generujete SQL dotazy programově, ověřte (odladěním nebo ještě lépe unit-testy), že byl dotaz vytvořen správně pro to, co chcete dělat.
Pokud chcete získat výjimku pokaždé, když dojde k chybě, povolte toto:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);