in reply to updating a database

That sounds pretty hard to believe - and if it happens, it might as well be a MySQL error than a Perl issue. But my guess is that you either erase the other data somewhere else in your program, or that you start out with different data than you expect.

I would also recommend you use placeholders. Not only will that make your code faster (you need just one prepare), you also have less problems with quoting. And what's the deal with backwacking the double quotes? And why put the column names in backticks? Why does the loop run till $i equals $#test, when the code doesn't show @test? Why don't you check the return values of the prepare and the execute?

Abigail