ну ты и накрутил... хмм. а, всё ясно. Ты, дядя, вместо того чтобы сказать "set name='имя'" говоришь ему сделать "set имя='имя'". Ёжику понятно что так оно работать не будет. В общем делай так:
PHP код:
...
$sqlu = "update $table_name set name = '$name', data_b = '$data_b', ..., where id = '$id'";
...
// или так:
$sqlu = 'update '.$table_name.' set name = "'.$name.'", data_b = "'.$data_b.'", ..., where id = "'.$id;
существенной разницы между двумя способами нет... в общем и целом, PHP интерпретирует всё что заключено в ", т.е.
$var = "name = $name"; равноценно
$var = 'name='.$name;. Так что если в текстовой переменной нет других переменных, лучше её заключать в ', потому что если она заключена в ", то PHP тратит лишние циклы ища переменные для замены внутри её. Поэтому же текстовые индексы Array лучше писать как $array['name'] а не $array["name"].