in reply to mySQL non-string bind variable

I could just prepare the SQL multiple times for each table...

I think what you mean is you could prepare a distinct SQL statement for each distinct table. As wfsp points out, that is the way you must do it, because DBI won't support using a placeholder where the table name is supposed to go.