Foros del Web » Programando para Internet » PHP »

Por qué este error?

Estas en el tema de Por qué este error? en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 13/06/2013, 10:19
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Por qué 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 ')' at line 1

este formulario de entrada de datos me da ests error y no me puedo dar cuenta donde se genera el mismo, si alguien me da una mano se lo agraezco

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO clientes (Nombre, Direccion, Telefono, Mail, Producto, Monto) VALUES (%s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['Nombre'], "text"),
GetSQLValueString($_POST['Direccion'], "text"),
GetSQLValueString($_POST['Telefono'], "text"),
GetSQLValueString($_POST['Mail'], "text"),
GetSQLValueString($_POST['Producto'], "text"),
GetSQLValueString($_POST['Monto'], "dec 6,2"));
  #2 (permalink)  
Antiguo 13/06/2013, 10:27
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Por que este error???

Reemplaza los %s por '%s'
__________________
Salu2!
  #3 (permalink)  
Antiguo 13/06/2013, 10:32
Avatar de vesper_metal90  
Fecha de Ingreso: enero-2013
Mensajes: 103
Antigüedad: 11 años, 2 meses
Puntos: 1
Respuesta: Por que este error???

Ponlo asi haber

$insertSQL = sprintf("INSERT INTO clientes (Nombre, Direccion, Telefono, Mail, Producto, Monto) VALUES (%s, %s, %s, %s, %s, %s")
  #4 (permalink)  
Antiguo 13/06/2013, 10:34
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 16 años, 11 meses
Puntos: 292
Respuesta: Por que este error???

Cuando son campos tipo string..... toca que coloques el '%s'

Cita:
$insertSQL = sprintf("INSERT INTO clientes (Nombre, Direccion, Telefono, Mail, Producto, Monto) VALUES ('%s', '%s', '%s', '%s', '%s', %s)"
O sea... monto no ..porque es un numero
__________________
Salu2!
  #5 (permalink)  
Antiguo 13/06/2013, 20:26
 
Fecha de Ingreso: noviembre-2003
Mensajes: 499
Antigüedad: 20 años, 4 meses
Puntos: 7
Respuesta: Por que este error???

Me sigue dando el mismo error....que mas puedo hacer????
  #6 (permalink)  
Antiguo 13/06/2013, 20:39
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: Por que este error???

Es altamente probable que algo del contenido de alguna de las variables esté rompiendo la sintaxis de SQL. Ten en cuenta que estás embebiendo un lenguaje ajeno a PHP, y el resultado tiene que respetar su propias reglas de sintaxis.
Para ver si ese es el problema lo mejor es ver qué es lo que realmente recibe MySQL.
Pon un echo que despliegue en la pantalla lo que se está mandando a la base y postealo acá
Código PHP:
Ver original
  1. if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  2. $insertSQL = sprintf("INSERT INTO clientes (Nombre, Direccion, Telefono, Mail, Producto, Monto) VALUES (%s, %s, %s, %s, %s, %s)",
  3. GetSQLValueString($_POST['Nombre'], "text"),
  4. GetSQLValueString($_POST['Direccion'], "text"),
  5. GetSQLValueString($_POST['Telefono'], "text"),
  6. GetSQLValueString($_POST['Mail'], "text"),
  7. GetSQLValueString($_POST['Producto'], "text"),
  8. GetSQLValueString($_POST['Monto'], "dec 6,2"));
  9. echo $insertSQL;
  10. }
__________________
¿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: formulario, 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




La zona horaria es GMT -6. Ahora son las 02:38.