Es que estás cometiendo un error en la programación...
El tema es que MySQL
no entiende PHP, y por ende tampoco entiende variables de PHP. Por esta razón, cuando creas dinámicamente una sentencia, debes asegurarte de que aquellos valores que sean cadenas de texto, en el SQL
queden encerrados entre apóstrofos.
Los apóstrofos que determinan las cadenas
no son puestos por la librería de enlace a datos, los tienes que poner tu en el script.
Para que se entienda claramente, cuando haces esto:
y el valor de $subcategorie es "PHP", la sintaxis que realmente recibe MySQL es:
En ese contexto, "PHP" no es una cadena de texto, en el nombre de un objeto, y MySQL asume que se trata de una columna, dada la sintaxis.
¿Se entiende?
La solución (que es tema de programación, en realidad), es que la variable quede entre los apostrofos que deben tener:
Siempre recordando que esa es una solución de un problema de
programación, no de SQL.