Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Registro Datos Mysql

Estas en el tema de Registro Datos Mysql en el foro de PHP en Foros del Web. Muy buenas, me gustaria saber en que me esta fallando el script siguiente en el sentido de que porque no me guarda los datos en ...
  #1 (permalink)  
Antiguo 13/05/2014, 03:29
tukymix
Invitado
 
Mensajes: n/a
Puntos:
Registro Datos Mysql

Muy buenas, me gustaria saber en que me esta fallando el script siguiente en el sentido de que porque no me guarda los datos en la base de datos, ya nose que hacer, ver si me podeis ayudar.

Estos son los parametros que recibe el registrar.php ( ?idland=c511c3fe-d5ae-13da-1130-phpc321d716b214&photo=d10338f2-8382-aa55-87bf-d78ebf618cd2&slurl=secondlife%3A%2F%2F%2Fapp%2Ftel eport%2FJollyRoger%2F250%2F244%2F21&name=JollyRoge r&area=2032&prims=465&rating=MATURE&type=Estate&us e=Commercial&price=10 )

registrar.php

Código PHP:
<?
include("conexion.php");

$idland $_GET["idland"];
$photo $_GET["photo"];
$slurl $_GET["slurl"];
$name $_GET["name"];
$area $_GET["area"];
$prims $_GET["prims"];
$rating $_GET["rating"];
$type $_GET["type"];
$use $_GET["use"];
$price $_GET["price"];

mysql_query("INSERT INTO lands (idland,photo,slurl,name,area,prims,rating,type,use,price,top,paytop,active) VALUES ('$idland','$photo','$slurl','$name','$area','$prims','$rating','$type','$use','$price','0','0','1')");

echo 
"IDLand: $idland<br>Photo: $photo<br>SLUrl: $slurl<br>Name: $name<br>Area: $area<br>Prims: $prims<br>Rating: $rating<br>Type: $type<br>Use: $use<br>Price: $price";
?>
NOTA: Al cargar la web, muestra los datos bien, pero no los guarda, la conexion.php tambien esta correcta. Y esta es mi base de datos:

CREATE TABLE `lands` (
`id` INT(10) NOT NULL AUTO_INCREMENT,
`idland` VARCHAR(36) NOT NULL ,
`photo` VARCHAR(36) NOT NULL ,
`slurl` VARCHAR(100) NOT NULL ,
`name` VARCHAR(50) NOT NULL ,
`area` VARCHAR(5) NOT NULL ,
`prims` VARCHAR(5) NOT NULL ,
`rating` VARCHAR(7) NOT NULL ,
`type` VARCHAR(15) NOT NULL ,
`use` VARCHAR(11) NOT NULL ,
`price` VARCHAR(5) NOT NULL ,
`top` VARCHAR(1) NOT NULL,
`paytop` VARCHAR(10) NOT NULL ,
`active` VARCHAR(1) NOT NULL ,
PRIMARY KEY (`id`)
)

Ya he echo de todo y no he conseguido nada, echar un vistazo si veis algun problema, Gracias de Antemano.
  #2 (permalink)  
Antiguo 13/05/2014, 04:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Registro Datos Mysql

Y digo yo, ¿pensaste en usar algo bien de tutorial, como por ejemplo esto para ver por qué falla?:

Código PHP:
Ver original
  1. mysql_query("INSERT INTO lands (idland,photo,slurl,name,area,prims,rating,type,use,price,top,paytop,active)
  2. VALUES ('$idland','$photo','$slurl','$name','$area','$prims','$rating','$type',
  3. '$use','$price','0','0','1')") or die("Error en MySQL: ".mysql_error());
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 13/05/2014, 05:14
tukymix
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Registro Datos Mysql

Gracias gnzsoloyo

Si mira, me sale esto:

Error en MySQL: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'use,price,top,paytop,active) VALUES ('','d10338f2-8382-aa55-87bf-d78ebf618cd2','' at line 1

Realmente noe a que es debido, utilizo nixiweb y la version del php es 5.4

Última edición por tukymix; 13/05/2014 a las 05:50
  #4 (permalink)  
Antiguo 13/05/2014, 20:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Registro Datos Mysql

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
  1. INSERT INTO lands
  2.     (idland, photo, slurl, NAME, area, prims, rating, TYPE, USE, price, top, paytop, active)
  3.     ('$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
  1. INSERT INTO lands
  2.     (`idland`, `photo`, `slurl`, `NAME`, `area`, `prims`, `rating`, `TYPE`, `USE`, `price`, `TOP`, `paytop`, `active`)
  3.     ('$idland', '$photo', '$slurl', '$name', '$area', '$prims', '$rating', '$type', '$use', '$price', '0', '0', '1');
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:54.