ALTER TABLE `users` ADD `users_podpis` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
Это ты сразу же создаешь узкое место в основной таблице скрипта - USERS, ибо
NOT NULL - не есть факт что у всех она всегда будет заполнена.
SELECT * FROM `users` WHERE `users_login`=? LIMIT 1
1) зачем выбирать все данные, если нужна только ячейка `users_podpis`?
2) зачем вообще этот запрос нужен, если глобальная переменная уже объявлена?
Про запрос в цикле я писал выше.