OK. ¿Hicsste la prueba que te sugiero? ¿Ejecutaste un "echo" que te permita ver qué quedo armado en esa query?
¿Verificaste que se haya ejecutado algo?
¿Comprobaste que MySQL haya modificado algo, o devuelto un warning?
Hay muchos pasos de verificación incompletos en lo que nos describes.
Comienza con esta parte:
Código PHP:
Ver original$qry = "UPDATE productos SET cantidad = $cantidad WHERE ean = $code";
// Siempre es buena idea visualizar las consultas que se crean, cuando estás desarrollando.
// Aunque parezca bien escrita, es posible que haya errores de datos
// que no están visibles al momento de codificar (son dinámicos)
echo $qry;
luego posteanos aquí la consulta que se visualiza en pantalla, para que podamos ver cómo quedo y qué es lo que MySQL
en realidad está recibiendo..
No supongas que porque está aparentemnte bien escrita con sus variables, en realidad esté quedando armada correctamente.
Bien podría suceder que lo que tu supones que las variables tienen no cumpla con lo que se necesite.
Te sorprendería la cantidad de veces que el problema está en los datos, y no en el código.