Возможно включены magic_quotes. В этом случае mysql_escape_string делает двойную работу. Java серваки ла2 - это имхо пример как не надо делать не только в плане базы данных.
я бы сделал так, файли я хранил в папке, в БД имена файлов id(пользователя)_дата добавления(что бы не считать какой есть а какой нету и одинаковых) таблица выглядит так id | user_id | pic_name картинки вывожу по user_id удаляю по id c БД и по pic_name в паке с заменой нет проблем если надо ограничит, что бы для юзера не было больше 8 фоток, то просто считаешь cout(id) where user_id="..."<8
если хочешь делать два размера фоток(иногда бывает нужно), больший и маленькие, то просто делаешь другую папку и туда сохраняешь маленькие, а имена те же )))