если ставить $data != 0 то не делает unserialize никогда... поэтому проверка на пустоту, ведь 0 - это по сути пустота. и тогда всё работает