На двух серверах с разными версиями php метод quote в одном и том же скрипте ведёт себя по разному.
На одном всё ок, строка просто заключается в кавычки. А там где свежий php7.4 строка заключается в экранированные кавычки и получается вот такой невалидный запрос:
UPDATE `categories` SET `name`=\'Мониторы 23+\\"\',`link`=\'http://portal.f5-online.ru/katalog/monitory-23plus\' WHERE `md5`=\'1df6506d6138b0f40d7eefa0f685ea0c\';
$sql = sprintf("UPDATE `categories` SET `name`=%s,`link`=%s WHERE `md5`=%s;",
$this->dbh->quote($name),
$this->dbh->quote($url),
$this->dbh->quote(md5($url))
);