A mi entender, el problema que tienes es un ejemplo de un error sintáctico indetectables simple vista, a menos que tengas claro el concepto de "
palabras reservadas".
Estás usando en la tabla, como nombre de columna, denominaciones que son parte del lenguaje SQL, y por consecuencia generan errores de difícil detección. No debes olvidar nunca que estás metiendo un lenguaje (SQL) dentro de otro (PHP), y cada uno tiene sus propias reglas sintácticas y restricciones.
Los que están en mayúsculas en esta query no deben ser usados como denominaciones de campos o tablas:
Código MySQL:
Ver original (idland
, photo
, slurl
, NAME
, area, prims
, rating
, TYPE, USE, price
, top
, paytop
, active
) ('$idland', '$photo', '$slurl', '$name', '$area', '$prims', '$rating', '$type', '$use', '$price', '0', '0', '1');
En este caso puntual dos de ellas (TYPE y NAME) son
toleradas como nombres de columnas por razones de compatibilidad hacia versiones viejas de MySQL, pero "USE" es una palabra total y absolutamente
prohibida. Está reservada para cambiar cuál es la base de datos donde se están realizando las consultas, y como comando de control es muy peligroso.
Lo mejor que puedes hacer es cambiar el nombre de esos campos, y te recomiendo no usar palabras en inglés ya que es donde más fácil se da el problema. Si no puedes cambiarlos, entonces deberás poner esos nombres entre acentos agudos (`) cada vez que los uses, de esta forma:
Código MySQL:
Ver original (`idland`, `photo`, `slurl`, `NAME`, `area`, `prims`, `rating`, `TYPE`, `USE`, `price`, `TOP`, `paytop`, `active`)
('$idland', '$photo', '$slurl', '$name', '$area', '$prims', '$rating', '$type', '$use', '$price', '0', '0', '1');