Кодировка к кавычкам не имеет никакого отношения.
Чтобы всегда добавлять любые символы в БД без ошибок, надо использовать
подготовленные выражения.
Кодировку, впрочем, тоже надо задавать не с помощью шаманских плясок с бубном, а правильно.
В итоге код должен выглядеть примерно так
$host = '127.0.0.1';
$db = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8';
$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
$ujasnaya_kavychka = '"""""';
// подготавливаем запрос, заменяя все переменные знаками вопроса
$stmt = $pdo->prepare("INSERT INTO table (pole_s_kavychkoy) VALUES (?)");
// исполняем его, передавая все переменные отдельно
$stmt->execute([$ujasnaya_kavychka]);
При таком способе выполнения запросов ни одной ошибки, вызванной передаваемыми в запрос данными никогда в принципе не произойдет.
Еще одна проблема может быть связана не с запросом, а с выводом. многие нубы выводят свои данные с кавычками в атрибут тега HТML,
<input type="text" value="<?=row['pole_s_kavychkoy']">
получают на выходе что-то вроде
<input type="text" value="артель "рога и копыта">
и страшно пугаются - оказывается, коварная база данных украла у них весь текст после кавычки.
Чтобы отобрать этот текст обратно ,весь вывод надо производить через htmlspecialchars()
Поскольку вопросы был отредактирован, то отредактирую и ответ:
Если речь идет не про кавычку, а про развесистую эмодзи, то в стандартной ut8 они не поддерживаются, и надо использовать
utf8mb4 - как в таблицах, так и при соединении.