Ver Mensaje Individual
  #3 (permalink)  
Antiguo 22/11/2014, 15:15
Avatar de gnzsoloyo
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, 5 meses
Puntos: 2658
Respuesta: #1064 - You have an error in your SQL syntax

Adicionalmente a eso, hay un error de construcción que se percibe en el mensaje de error.
Cuando poner un IN(), los valores deben quedar separados por comas, pero no de esta forma:
Código SQL:
Ver original
  1. DELETE FROM user_badges
  2. WHERE user_id='23' AND product_id IN ('126, 127')
Esa sintaxis asume que PRODUCT_ID es un campo VARCHAR que contendrá valores como "126,127", es decir una cadena de texto con los dos números con una coma intermedia, y francamente no creo que sea el caso.

Quítale los apóstrofos...

Consejo: Los valores números no necesitan apóstrofos cuando los pones en SQL, a menos que sea para comparar contra campos VARCHAR.

La sintaxis correcta asía:
Código PHP:
Ver original
  1. mysql_query("DELETE FROM user_badges WHERE user_id = ".$userid." AND product_id IN (".$ids.")") or die(mysql_error());
que podrá dar un resultado mas o menos así (es un ejemplo imaginario):
Código SQL:
Ver original
  1. DELETE FROM user_badges
  2. WHERE user_id = 23 AND product_id IN (126, 127)

Eso podrá hacer que si un valor no está llegando en una de as variables a la query se dispare un error de sintaxis, pero ese error te puede indicar precisamente que hay una variable vacía... Lo que es bueno para depurar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)