通过准备好的语句将PHP枚举插入SQL数据库

通过准备好的语句将PHP枚举插入SQL数据库,php,html,mysql,enums,Php,Html,Mysql,Enums,我现在有一个prepared语句,它通过prepared语句(PHP)将HTML表单中的数据放入SQL数据库 这里的问题;将一个字段放入数据库后仍为空。“性别”字段,它是一个枚举(M、F、O)。其余的都会被正确的数据填满 我有没有办法把性别和其他数据一起放进表格 相关HTML: 更改单选按钮的值以匹配枚举值 <input type="radio" id="man" name="gender" value="M"

我现在有一个prepared语句,它通过prepared语句(PHP)将HTML表单中的数据放入SQL数据库

这里的问题;将一个字段放入数据库后仍为空。“性别”字段,它是一个枚举(M、F、O)。其余的都会被正确的数据填满

我有没有办法把性别和其他数据一起放进表格

相关HTML:


更改单选按钮的值以匹配枚举值

<input type="radio" id="man" name="gender" value="M">
<label for="man">Man</label>

<input type="radio" id="woman" name="gender" value="F">
<label for="woman">Woman</label>

<input type="radio" id="other" name="gender" value="O">
<label for="other">Other</label>

保存到数据库时不要使用
htmlentities()
。仅当在网页上显示文本时才应使用此选项。您尝试过解决此问题吗?你被困在哪里?你有没有检查过你是否发送了正确的数据?
$firstname= htmlentities($_POST['firstname'], ENT_QUOTES);
$lastname= htmlentities($_POST['lastname'], ENT_QUOTES);
$gender=  htmlentities($_POST['gender'], ENT_QUOTES);
$birthdate= preg_replace("([^0-9-])", "", $_POST['birthday'], ENT_QUOTES);
$email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
$portfolio = filter_var($_POST['portfolio'], FILTER_SANITIZE_URL);

$query = "INSERT INTO `table` (`firstname`, `lastname`, `gender`, `birthdate`, `email`, `portfolio`)
VALUES (?, ?, ?, ?, ?, ?)";

mysqli_stmt_bind_param($stmt, "ssssss", $firstname, $lastname, $gender, $birthdate, $email, $portfolio);

mysqli_stmt_execute($stmt);
$prepstmt = mysqli_stmt_get_result($stmt);
<input type="radio" id="man" name="gender" value="M">
<label for="man">Man</label>

<input type="radio" id="woman" name="gender" value="F">
<label for="woman">Woman</label>

<input type="radio" id="other" name="gender" value="O">
<label for="other">Other</label>
$gender_map = ['man' => 'M', 'woman' => 'F', 'other' => 'O'];
$gender = $gender_map[$_POST['gender']];