I suspect that at some point in the near future, an LLM architecture will emerge that uses separate sets of tokens for prompt text and regular text, or some similar technique, that will prevent prompt injection. A separate "command voice" and "content voice". Until then, the best we can do is hacks like this that make prompt injection harder but can never get rid of it entirely.
This is an entirely different thing from trying to reduce the probability of an attack working.
Unless you're using a build of msyql that predates mysql_real_escape_string, because the _real version takes the connection character set into account and the previous version didn't.
There's zero reason to believe it's fundamentally unsolvable or something. Will we come up with a solution in 6 months or 6 years -- that's harder to say.
We can train but we don't teach them anything. They learn from data directly and we don't know or understand what they learn so we can't adjust what they learn directly.
You can't make "always obey these types of tokens" a part of the architecture or training. It's a concept that doesn't even make sense for the vast majority of text it pre-trains on.
"Solving" prompt injection is solving alignment. It's not happening.