It means that there's a % somewhere in your data. Craig is right, you should never use sprintf in that way. The first parameter should always be a format string that is supplied or built by you, so that you know exactly where you want the variables interpolated, and so that if you do need a % you can escape it by writing %%.
For the current case, you need the simples possible format string:
$update = sprintf( '%s', "UPDATE .... ");
but hopefully you can see from this that sprintf() isn't needed at all: you can just as easily say:
$update ="UPDATE ... ";
Really, with PHP's advanced string-handling operators and variable interpolation abilities, the only time you ever need printf/sprintf is to control formatting such as forcing a specific number of decimal places, a particular string length, etc:
$data = sprintf("%-12s %.2f\n", $acct_name, $acct_bal );
will create a line where the account name is left-justified in a 12-column field, and the account balance always shows (a rounded-off) 2 decimal places.