En el siguiente ejemplo vamos a guardar un registro utilizando mysqli_connect, html_entity_decode, esta función convierte todas las entidades HTML a sus caracteres correspondientes y finalmente strip_tags que retira las etiquetas HTML y PHP de un string.
<?php
// Creamos una conexión
$conn = mysqli_connect('localhost','my_user','my_password','my_db');
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "conexión exitosa";
// colectamos los valores que
$nombre = strip_tags(html_entity_decode($_POST['nombre'], ENT_NOQUOTES, "UTF-8"));
$apellidos = strip_tags(html_entity_decode($_POST['apellidos'], ENT_NOQUOTES, "UTF-8"));
$password = strip_tags(html_entity_decode($_POST['password'], ENT_NOQUOTES, "UTF-8"));
// aquí es importante recordar que en la validación de contraseñas debemos pasar también strip_tags y html_entity_decode a nuestro valor $_POST
$claveParaGuardar = password_hash($password, PASSWORD_DEFAULT);
$sql = "INSERT INTO clientes (nombre, apellidos, password) VALUES ('$nombre', '$apellidos', '$claveParaGuardar')";
if (mysqli_query($conn, $sql)) {
echo 'Registro Agregado';
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
Como siempre el ejemplo es sencillo para su fácil comprensión, pero podemos hacer alguna función para sanitizar los datos colectados de $_POST o también usar htmlentities para convertir todos los caracteres aplicables a entidades HTML para mostrar la información de nuestra base de datos.