Valeri Lavrov: ведь когда проверяем данные можно дополнительно запросить id или nickname (первичный ключ) и уже по нему обновить в дополнительном запросе. Или всё зафигачить в один запрос с проверками (а еще лучше было бы поставить процедурку (php.net/manual/ru/mysqli.quickstart.stored-procedu..., которую можно вызывать кроном на сервере и вообще не трогать php)
2) фреймворки - не такая то и страшная штука. Сам сначала боялся их, потом глянул фалкон и понял, что все что я писал - жесткий костылепед, который уже там реализован
3) тут вопроса я как-то не увидил