$rows_affected = $db->do($statement);
$rows_affected = $db->do($statement, \%unused);
$rows_affected = $db->do($statement, \%unused, @bind_values);
DBI: : do непосредственно выполняет SQL-команду, не являющуюся командой SELECT, и возвращает число измененных строк. Этот способ быстрее, чем пара DBI: :prepare/DBI: :execute , требующая два вызова функции. Первый аргумент - сама команда SQL. Второй аргумент не используется в DBD::mSQL и DBD::mysql, но для других модулей DBD может содержать ссылку на хэш атрибутов. Последний аргумент -массив значений для подстановки в команду вместо меток-заместителей '?'. Подстановка происходит слева направо. Дополнительно DBI: : do автоматически заключит подставляемые строковые значения в кавычки.