Cuando el contenido de una variables es una cadena de texto, en la consultas esa cadena debe quedar encerrada entre apóstrofes (') o de lo contrario será tomada como nombre de columna.
En tu caso, cuando la sentencia quedaba armada, lo que quedaba era:
porque "12a" era el contenido del parámetro. Como "12a"no es un número, sino una cadena, lo interpretaba como nombre de columna.
Nota:
Van
con apóstrofes:
- Cadenas de texto.
- Fechas, en formato "aaaa-mm-dd".
- Fechas y horas, con formato "aaaa-mm-dd hh:mm:ss"
- Horas, en formato "hh:mm:ss"
Van
sin apostrofes:
- Números enteros o decimales (los decimales con punto decimal y sin separadores de miles).
- Valores TRUE, FALSE y NULL.
- Números en formato exponencial.
No van en las sentencias de ningún tipo:
- Valores
binarios (blob). Para cargarlos se usan funciones especiales.