MySQLがエラーなしでクエリを実行したためです。間違ったクエリを書いたからといって、MySQLがそれを受け入れないほどクエリが間違っていることを意味してはなりません。
プログラムでSQLクエリを生成するときはいつでも、(デバッグまたはさらに優れた単体テストによって)クエリが目的どおりに作成されていることを確認してください。
エラーが発生するたびに例外を取得する場合は、次のことを有効にします。
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);