Foros del Web » Programando para Internet » PHP »

Error idiota Mysql

Estas en el tema de Error idiota Mysql en el foro de PHP en Foros del Web. Pues tengo un error que no se ha que viene por mucho que lo reviso no veo nada mal. Esta es la consulta Código PHP: ...
  #1 (permalink)  
Antiguo 04/08/2011, 19:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Error idiota Mysql

Pues tengo un error que no se ha que viene por mucho que lo reviso no veo nada mal.


Esta es la consulta
Código PHP:
$invita md5(rand(0,999));
$tiempo time();
$sql2 "INSERT INTO smf_invites SET invite_id='', key='".$invita."', active='1', member_id='1', member_name='totolia', time='".$tiempo."'";
if(@
mysql_query($sql2)) {
} else {
echo 
mysql_error();

Y esta es la base de datos, por mucho que lo miro no veo el problema todo esta bien.

Campo Tipo Cotejamiento Atributos Nulo Predeterminado Extra
invite_id int(4) UNSIGNED No auto_increment
key varchar(255) utf8_general_ci No
active tinyint(1) UNSIGNED No
member_id tinyint(3) UNSIGNED No
member_name varchar(255) utf8_general_ci No
time int(10) UNSIGNED No 0

Y el error es el siguiente:

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 'key='ec5aa0b7846082a2415f0902f0da88f2', active='1', member_id='1', member_name='' at line 1
  #2 (permalink)  
Antiguo 04/08/2011, 20:11
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Error idiota Mysql

Claro que te va a dar error, esa es la sintáxis para update y no insert. Lee sobre ambos casos

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 04/08/2011, 20:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Cita:
Iniciado por Sourcegeek Ver Mensaje
Claro que te va a dar error, esa es la sintáxis para update y no insert. Lee sobre ambos casos

Saludos!

Pues lo he hecho con los values y tampoco funciona. Me da error en la parte del key y nose porque.
  #4 (permalink)  
Antiguo 04/08/2011, 20:12
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error idiota Mysql

Insert set ? O insert values?
  #5 (permalink)  
Antiguo 04/08/2011, 20:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Cita:
Iniciado por andresdzphp Ver Mensaje
Insert set ? O insert values?
He probado con los dos, a mi parecer siempre me ha funcionado las dos formas. Pero las dos me dan error en key=...
  #6 (permalink)  
Antiguo 04/08/2011, 20:17
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 116
Respuesta: Error idiota Mysql

INSERT INTO `tabla` (`campo1`, `campo2`) VALUES ('valorCampo1', 'ValorCampo2')

*campos y valores deben de ir en orden, en su patron, y separados por una coma.
** Y al estar la sintaxis MYSQL entre comillas dobles, no hay necesidad de estar concatenando variables, comillas simples y demás.
__________________
Programador jQuery & PHP
  #7 (permalink)  
Antiguo 04/08/2011, 20:20
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 116
Respuesta: Error idiota Mysql

Te dejo un ejemplo funcionable:
Código MySQL:
Ver original
  1. mysql_query("insert into flezhatable (user,country) values ('$nombre','$apellidos')");

Saludos.
__________________
Programador jQuery & PHP
  #8 (permalink)  
Antiguo 04/08/2011, 20:20
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Cita:
Iniciado por ZoroRoronoa Ver Mensaje
INSERT INTO `tabla` (`campo1`, `campo2`) VALUES ('valorCampo1', 'ValorCampo2')

*campos y valores deben de ir en orden, en su patron, y separados por una coma.
** Y al estar la sintaxis MYSQL entre comillas dobles, no hay necesidad de estar concatenando variables, comillas simples y demás.
Sisi, si también he estado probandolo así:

Código PHP:
mysql_query("INSERT INTO smf_invites (key, active, member_id, member_name, time)
VALUES ('"
.$invita."', '1', '1', 'totolia', '".$tiempo."')"); 
  #9 (permalink)  
Antiguo 04/08/2011, 20:22
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 116
Respuesta: Error idiota Mysql

que tal asi:
Código MySQL:
Ver original
  1. ("INSERT INTO smf_invites (key, active, member_id, member_name, time)
  2. VALUES ('$invita', '1', '1', 'totolia', '$tiempo')");
__________________
Programador jQuery & PHP
  #10 (permalink)  
Antiguo 04/08/2011, 20:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Cita:
Iniciado por ZoroRoronoa Ver Mensaje
que tal asi:
Código MySQL:
Ver original
  1. ("INSERT INTO smf_invites (key, active, member_id, member_name, time)
  2. VALUES ('$invita', '1', '1', 'totolia', '$tiempo')");
Nada sigue sin ir es alucinante, no funciona porque no le da la mismísima gana.
  #11 (permalink)  
Antiguo 04/08/2011, 20:27
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 116
Respuesta: Error idiota Mysql

haber, que tal asi:
Código MySQL:
Ver original
  1. ("INSERT INTO `smf_invites` (`key`, `active`, `member_id`, `member_name`, `time`)
  2. VALUES ('$invita', '1', '1', 'totolia', '$tiempo')");

o asi:
Código MySQL:
Ver original
  1. ("INSERT INTO `smf_invites` (`key`, `active`, `member_id`, `member_name`, `time`)
  2. VALUES ('$invita', 1, 1, 'totolia', '$tiempo')");
__________________
Programador jQuery & PHP
  #12 (permalink)  
Antiguo 04/08/2011, 20:28
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Error idiota Mysql

pero enrealidad cual es el error que te da?
  #13 (permalink)  
Antiguo 04/08/2011, 20:29
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Cita:
Iniciado por spirron589 Ver Mensaje
pero enrealidad cual es el error que te da?
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 'key='ec5aa0b7846082a2415f0902f0da88f2', active='1', member_id='1', member_name='' at line 1
  #14 (permalink)  
Antiguo 04/08/2011, 20:33
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Nose porque pero ha funcionado Gracias a todos por las respuesta a funcionado el segundo código de ZoroRononoa
  #15 (permalink)  
Antiguo 04/08/2011, 20:34
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Error idiota Mysql

el invite_id si es un campo autoincrement...no lo coloques alli, elimina eso si en la bd es un autoincrement
  #16 (permalink)  
Antiguo 04/08/2011, 20:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Cita:
Iniciado por spirron589 Ver Mensaje
el invite_id si es un campo autoincrement...no lo coloques alli, elimina eso si en la bd es un autoincrement
No en un principio no lo puse, luego no iba intente ponerlo, luego lo probé con SET, tampoco iba, le volví a quitar el id, no iba de ninguna manera. xD

Muchísimas gracias por la ayuda.
  #17 (permalink)  
Antiguo 04/08/2011, 20:43
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Error idiota Mysql

Código PHP:
Ver original
  1. $primero="1";
  2. $member_name="totolita";
  3. $sql = " INSERT INTO smf_invites (key,active,member_id,member_name,time)
  4.  
  5. VALUES ('$invita','$primero','$primero','$member_name','$time')";
  6.  
  7.  $result = mysql_query($sql) or die mysql_error();


utiliza eso....a mi me funciona
  #18 (permalink)  
Antiguo 04/08/2011, 20:43
Avatar de ZoroRoronoa  
Fecha de Ingreso: marzo-2011
Ubicación: California, USA
Mensajes: 824
Antigüedad: 13 años, 1 mes
Puntos: 116
Respuesta: Error idiota Mysql

Cita:
Iniciado por spirron589 Ver Mensaje
el invite_id si es un campo autoincrement...no lo coloques alli, elimina eso si en la bd es un autoincrement

@totolia.
Es verdad, si es autoincremente, reemplaz el valor por NULL.

Si mi segundo codigo te funciono, se debio a que los numeros no van entre comillas, y el nombre de la tabla debe ir entre comillas cursivas `` (No se por que, pero a mi tambien me da error con otras comillas, debo usar estas).

Saludos.
__________________
Programador jQuery & PHP
  #19 (permalink)  
Antiguo 04/08/2011, 20:45
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Error idiota Mysql

Creo que ya ví por qué no funcionaba.
Pasa que 'key' es una palabra reservada de SQL, es por ello que encerrando entre ` si funciona (ese apóstrofe
es para SQL el encerrado correcto)

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #20 (permalink)  
Antiguo 04/08/2011, 20:54
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Error idiota Mysql

No solo eso, tambien porque estaba metiendo un numero en un campo entero, pero lo estaba colocando en la consulta SQL entre parentesis, entonces estaba mandando un caracter a un campo tipo entero.

Al quitar las comillas ahora si se manda un tipo entero a un campo tipo entero en la DB.

Saludos.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #21 (permalink)  
Antiguo 04/08/2011, 21:01
 
Fecha de Ingreso: agosto-2011
Ubicación: Venezuela
Mensajes: 108
Antigüedad: 12 años, 9 meses
Puntos: 5
Respuesta: Error idiota Mysql

ok, colegas vean muy bien el error que le da
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 'key='ec5aa0b7846082a2415f0902f0da88f2', active='1', member_id='1', member_name='' at line 1

no deberia de mostrar tambien alli totolita? el error estara alli?
  #22 (permalink)  
Antiguo 04/08/2011, 21:06
 
Fecha de Ingreso: mayo-2008
Mensajes: 315
Antigüedad: 16 años
Puntos: 7
Respuesta: Error idiota Mysql

Cita:
Iniciado por spirron589 Ver Mensaje
ok, colegas vean muy bien el error que le da
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 'key='ec5aa0b7846082a2415f0902f0da88f2', active='1', member_id='1', member_name='' at line 1

no deberia de mostrar tambien alli totolita? el error estara alli?
Si lo debería, pero vamos yo creo que el error se acumula es decir se produce anteriormente y lo detecta en otro lado.
  #23 (permalink)  
Antiguo 04/08/2011, 21:07
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: Error idiota Mysql

En ese error, estás usando una sintáxis inválida, ya te lo puse arriba.
Yo me refería al por qué funcionaba con ` y por qué no sin ellas.

Errores de ese tipo son impredecibles, pero si lo analizas detenidamente puedes llegar
a la solución
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: mysql, sql
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

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 16:53.