Tu problema, como bien indica el error devuelto, no es con PHP sino con SQL... simplemente la sintaxis de un UPDATE no es así --¿seguro que
actualizarás?--, debería de ser algo como:
UPDATE usuarios SET img_ruta='../users_imgsdvdx3ny.gif' WHERE id='30' http://dev.mysql.com/doc/refman/5.0/en/update.html
Un par de comentarios:
- Utilizas dos variables para lo mismo (
$img_ruta y
$ruta), o al menos veo terminan con el mismo valor, lo cuál entiendo es lo correcto; una indica donde mueves el archivos, la otra es para almacenar esa ruta en la BD... si bien esta varible representa lo mismo, o deben ser lo mismo, ¿no pueden ser la misma --una sola--?. Esto puede generarte posteriores errores al querer modificar tu script y un error de optimización actual.
- El que ejecutes la función mysql_query() no te asegura dicha query haya sido ejecutada correctamente (tal es el caso ahora). Te sugiero crees un bloque para preveer ese caso...
- Plantea bien las situaciones: ahora estás actualizando un dato que supones ya existe (
actualizas).
En fin, comentarios así por encimita... El único par de 4

. Saludos!
PD: Básico... separa las cosas SQL (querys, bases de datos...) es totalmente independiente de PHP...