Ошибок не возникает потому что ты не сказал ПДО, чтобы он тебе о них сообщал.
А не добавляется потому что ты всё делаешь неправильно. Переменные
никогда не добавляются прямо в запрос. Плюс в коде коде куча всего ненужного.
Вот здесь можно посмотреть
нормальный пример
Сначала запрос надо подготовить , поставив вместо переменных знаки вопроса, а потом выполнить,
передав переменные отдельно
<?php
$login = $_POST['login'];
$email = $_POST['email'];
$password = $_POST['pass'];
$conn = new PDO('mysql:host=localhost; dbname=testbd', 'root', '', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
$sql = "INSERT INTO users (login, email, password) VALUES (?,?,?)";
$stmt= $pdo->prepare($sql);
$stmt->execute([$login, $email, $password]);
И все всегда будет работать