Perché MySQL ha eseguito la tua query senza errori. Solo perché hai scritto la query sbagliata, questo non deve significare che la query è così sbagliata che MySQL non la accetterà.
Ogni volta che generi query SQL a livello di codice, verifica (mediante il debug o ancora meglio unit-test) che la query sia stata creata proprio per quello che vuoi fare.
Se vuoi ottenere un'eccezione ogni volta che si verifica un errore, abilitalo:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);