Любой класс, в котором есть метод update() - по определению ущербен.
попробуй с его помощью сделать банальнейший инкремент поля или использовать функцию Mysql. Не говоря уже о том чтобы выполнить какой-нибудь запрос, отличный от тупого UPDATE.
Основная проблема твоего кода - его чудовищная уязвимость, дыры просто со всех сторон.
Вопросы:
при чем здесь mysqi, если ты пишешь под PDO?
какие методы работают медленно и с чего ты это взял?
зачем тебе нужно создать класс для работы с базой данных с драйвером PDO?
Теперь к ноукам.
Если говорить об удобстве выполнения запроса UPDATE, то идеальным вариантом будет кастомный плейсхолдер для массива с данными + стандартная функция для выполнения запросов.
Пример, с использованием
phpfaq.ru/safemysql
Если у нас тупой апдейт
$db->query("UPDATE ?n SET ?u WHERE id = ?i", $table, $data, $id);
обращение к этому методу не сложнее, чем к твоему специальному, но при этом любые сложности здесь решаются с легкостью, а у тебя - никак:
$sql = "UPDATE ?n SET count = count+1, NOW(), ?u WHERE id = ?i";
$db->query($sql, $table, $data, $id);
Если все же хочется именно средствами PDO, то читаем тут
phpfaq.ru/pdo
в основном про экранирование имени таблицы и имен полей, и про сборку корректного запроса из пар ключ-значение