Как сказано выше, вы должны использовать подготовленный оператор, но с mysqli_real_escape_string и htmlspecialchars также хорошим способом предотвратить инъекцию sql, о вашем ответе, вы должны выбрать свою таблицу, чтобы увидеть, существует ли какое-либо существующее электронное письмо, как показано ниже:
if (isset($_POST['register'])) {
$user = $_POST['username'];
$pass = $_POST['password'];
$email = $_POST['email'];
$phash = sha1(sha1($pass."salt")."salt");
$sql = mysqli_query($conn,"SELECT email FROM users WHERE email = '{$mail}'");
if(mysqli_num_rows($sql) > 0)
{
echo "Email exist";
}else
{
$sql = "INSERT INTO users (`username`, `password`, `email`) VALUES ('$user', '$phash', '$email')";
$result = mysqli_query($conn, $sql);
}
}
и лучше обернуть имя вашего столбца этим "` ", еще одна вещь, если ваш идентификатор - автоинкремент, опустите столбец id, вам не нужно добавлять столбец id в запросе INSERT.