После того, как нашли user_id или другое поле, надо делать по остальным полям не INSERT, а UPDATE. Делая каждый раз INSERT вы создаете новую строку.
Кроме всего вам в вашей конструкции кода также надо проверять на уникальность полей, иначе расплодится Иванов или Сергеев и вы одним махом всем Сергеям поменяете дату рождения ;-).
Ну и так, для ворчания - у вас нет проверки на исключения, но это полбеды - совсем нет проверки на SQL-инъекции.