Немного сложно точно знать, что происходит, не видя HTML-источник вашей формы, но я думаю, что
if (array_key_exists('update', $_POST)) {
блок нужно переместить из внешнего if, так как он никогда не будет выполнен, если он там есть.
Если вы не хотите использовать какую-либо среду тестирования, print()
ваш друг, когда дело доходит до отладки вашего кода. Попробуйте найти то, что выполняется, а что нет; вы быстро обнаружите, какие из ваших предположений неверны и, следовательно, где ошибка.