Передавать динамически построенные имена таблиц в запросе довольно опасно.Но если это так необходимо вашему приложению, вы должны очистить данные.Поскольку PDO не может помочь с этим, вы должны вызвать mysql_real_escape_string для имени таблицы самостоятельно.Также вам придется заключить имя таблицы в кавычки в виде `table_name`.Поэтому подготовьте запрос следующим образом:
'SELECT * FROM `' . mysql_real_escape_string($database) . '` WHERE id = :id
Одно примечание: mysql_real_escape_string
требуется уже установленное соединение с БД.
РЕДАКТИРОВАТЬ: Но когда я думаю об этом, вероятно, лучше всего сопоставить переменную $database
с вашими существующими таблицами.