Choog, это зависит от вашего запроса на обновление. Если в вашей таблице есть поля с именами: some_id, foo, bar, baz, qux - и в вашем PHP-скрипте есть ОБНОВЛЕНИЕ, например:
"UPDATE table SET foo = '$foo', bar = '$bar', baz = '$baz', qux = '$qux' WHERE some_id = '$id'"
Это обновит (перезапишет) все поля, которые вы указали. Если какая-либо из этих переменных имеет значение NULL или пустые строки, то да, вы перезапишете существующие данные с NULL (если разрешено) или пустой строкой.
Если вы обновите только те поля, которые вам нужны, например, foo и bar, то это не изменит значения baz и qux. например,
"UPDATE table SET foo = '$foo', bar = '$bar' WHERE some_id = '$id'"
Я не знаю специфики того, что вы делаете, но вы можете посмотреть на REPLACE INTO (http://dev.mysql.com/doc/refman/5.1/en/replace.html) и INSERT IGNORE (http://dev.mysql.com/doc/refman/5.1/en/insert.html), а также запросы. Они * 1013) * может быть более подходящим для того, что вы делаете.