Я работаю на PHP проект с MySQLi и нужно, чтобы получить информацию от пользователя через $_POST
, моя проблема заключается в том, что я хочу использовать подготовленные заявления и mysqli->real_escape_string
как это:использования mysqli_real_escape_string с подготовленным заявлением
//$mysqli is the link to my database
if(isset($_POST['ID_name']) && isset($_POST['Nombre_name']))
{
//just in case magic_quotes_gpc is on
$id = trim(htmlentities(mysqli_real_escape_string(stripslashes($mysqli,$_POST['ID_name']))));
$nombre = trim(htmlentities(mysqli_real_escape_string(stripslashes($mysqli,$_POST['Nombre_name'])));
//... more code validation but not reffered to my question...
$query="insert into empleado_php values(?,?)";
if(!($consulta=$mysqli->stmt_init())){
echo"Error al crear la sentencia ingresar.php";
exit();
}
if(!($consulta->prepare($query))){
echo"Error al prepara la consulta ingresar.php";
exit();
}
if(!($consulta->bind_param("ss", $id, $nombre))){
echo"Error anexando parametros ingresar.php";
exit();
}
if(!($consulta->execute())){
echo "Error al ejecutar la consulta";
echo"<br>";
echo "Error ".$consulta->error. "con codigo " .$consulta->errno;
exit();
}
else{
echo "Datos ingresados exitosamente !!!";
}
$consulta->close();
$mysqli->close();
?>
Мой вопрос: нужно ли использовать mysqli_real_scape_string
при использовании подготовленного заявления? если да, мой код хорош? не могли бы вы дать лучший образец?
Спасибо ... так что мне не нужно использовать mysqli_real_escape_string с подготовленным оператором, потому что я удваиваю экранирование значений? если ответ да, мне никогда не придется использовать mysqli_real_escape_string при использовании готовых строк, потому что он уже выполняет экранирование? –