Actualmente tengo una declaración preparada que coloca los datos de un formulario HTML a través de una declaración preparada (PHP) en una base de datos SQL.
El problema aquí; un campo permanece vacío después de ponerlo en la base de datos. El campo 'género', que es un ENUM (M, F, O). El resto se completa con los datos correctos.
¿Hay alguna forma de incluir el género en la tabla junto con los demás datos?
El HTML relevante:
<input type="radio" id="man" name="gender" value="man">
<label for="man">Man</label>
<input type="radio" id="woman" name="gender" value="woman">
<label for="woman">Woman</label>
<input type="radio" id="other" name="gender" value="other">
<label for="other">Other</label>
El PHP:
$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);
Cambie los valores de los botones de opción para que coincidan con los valores ENUM.
<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>
Si no puede cambiar el formulario, puede asignar los valores en PHP:
$gender_map = ['man' => 'M', 'woman' => 'F', 'other' => 'O'];
$gender = $gender_map[$_POST['gender']];
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras