Foros del Web » Programando para Internet » PHP »

Problema sintax SQL INSERT

Estas en el tema de Problema sintax SQL INSERT en el foro de PHP en Foros del Web. Hola a todos! Tengo esta sintax: Código PHP: $ssql = "INSERT INTO terms (id,keyword,category,definition,by,pdate,status) VALUES ('','$_POST[term]','','','','','')" ; $rs = mysql_query ( $ssql ) or die( mysql_error ());  Me da este error: You ...
  #1 (permalink)  
Antiguo 25/09/2004, 08:18
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Problema sintax SQL INSERT

Hola a todos!

Tengo esta sintax:

Código PHP:
$ssql="INSERT INTO terms (id,keyword,category,definition,by,pdate,status) VALUES ('','$_POST[term]','','','','','')";
$rs=mysql_query($ssql) or die(mysql_error()); 
Me da este error:

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 'by,pdate,status) VALUES ('','incredible','','','','','')' at li

¿Qué será? ya lo he chequeado y nada. Busqué aca algún post similar pero sigo sin entender por qué sale el error!...

Gracias de antemano!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #2 (permalink)  
Antiguo 25/09/2004, 12:26
 
Fecha de Ingreso: agosto-2004
Ubicación: Valencia
Mensajes: 149
Antigüedad: 19 años, 8 meses
Puntos: 0
$_POST[term] debe ir:
$_POST['term'] o
$_POST["term"]
__________________
www.adimensional.info Adimensional
www.cientosderecetas.com Cientos de recetas
  #3 (permalink)  
Antiguo 25/09/2004, 12:59
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
No puedo poner $_POST['term'] ni $_POST["term"] porque lanza error:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\AppServ\www\tecnopedia\send_term_results.php on line 18

Un saludo.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #4 (permalink)  
Antiguo 25/09/2004, 13:01
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
¿Será el nombre de alguno de los campos?... creo que existe una lista de nombres prohibidos para asignarle a un campo SQL... aunque no creo que ese sea mi caso.
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
  #5 (permalink)  
Antiguo 27/09/2004, 08:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sobre el problema con la sintax de PHP para insertar variables, usa concatenación:

Código PHP:
$ssql="INSERT INTO terms (id,keyword,category,definition,by,pdate,status) VALUES ('','".$_POST['term']."','','','','','')"
$rs=mysql_query($ssql) or die(mysql_error()); 
El resto de problemas que podrías tener tal vez son por los nombres de campos que usas .. podrían ser palabras reservadas para Mysql .. si quieres seguir usandolos tendrías que usar el caracter (` acento invertido)`campo` para llamar a tus campos.

Un saludo,
  #6 (permalink)  
Antiguo 27/09/2004, 11:21
Avatar de Takitei  
Fecha de Ingreso: septiembre-2004
Ubicación: Venezuela
Mensajes: 1.231
Antigüedad: 19 años, 7 meses
Puntos: 5
Precisamente Cluster. El problema era que el campo by era reservado de SQL... debido a que hay sentencias que usan BY. Entonces decidí cambiar el nombre del campo por postby y listo.

De todas formas gracias por el detalle de los acentos. Sinceramente no lo sabía y lo tomaré muy en cuenta. Lo hubiese sabido ayer y podría haber dejado mi campo by. Un saludo!
__________________
Takitei
Ingeniarte.com
DannyHerran.com
"Dadme un punto de apoyo y moveré la tierra" - Arquímedes.
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 08:35.