Чтобы смайлы не вызывали ошибку надо выставить правильную кодировку
чтобы никакие символы не мешали запросу, все переменные надо передавать в БД отдельно от запроса
// правильно соединяемся
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli($host, $user, $pass, $db, $port);
$mysqli->set_charset("utf8mb4");
// правильно вставляем
$sql = "INSERT INTO users (name, email, password) VALUES (?,?,?)";
$stmt= $conn->prepare($sql);
$stmt->bind_param("sss", $name, $email, $password);
$stmt->execute();