Eftersom MySQL körde din fråga utan några fel. Bara för att du har skrivit fel fråga får det inte betyda att frågan är så fel att MySQL inte accepterar den.
Närhelst du genererar SQL-frågor programmatiskt, verifiera (genom att felsöka eller ännu bättre enhetstester) att frågan har skapats rätt för det du vill göra.
Om du vill få ett undantag varje gång ett fel inträffar, aktivera det:
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);