Cita:
Iniciado por pateketrueke
En la base de datos no se deberían ver los escapes, si los ves entonces algo hiciste mal.
Probablemente escapaste dos veces, no sé, adivinar no se puede.
Vale jeje aver son dos funciones, una la que elimina, crea o modifica consultas:
Código PHP:
function eliminar_nuevos_datos($conexion, $consulta, $escapar_datos, $id_insert){
// Create connection
require($_SERVER['DOCUMENT_ROOT'].$conexion);
$SQL_datos_conexion = new mysqli($db_host, $db_user, $db_pass, $db_name);
//Si se quiere escapar los datos
if($escapar_datos!=false){
$stmt = $SQL_datos_conexion->prepare($consulta);
$numero_datos = count($escapar_datos);
if($numero_datos>=2){
//Saber si es string o numerico(int)
$type = '';
foreach ($escapar_datos as $value) {
$type .= is_numeric($value) ? 'i' : 's';
}
if($numero_datos==2){
$stmt->bind_param($type, escapar_caracteres($SQL_datos_conexion, $escapar_datos[0]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[1]));
}elseif($numero_datos==3){
$stmt->bind_param($type, escapar_caracteres($SQL_datos_conexion, $escapar_datos[0]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[1]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[2]));
}elseif($numero_datos==8){
$stmt->bind_param($type, escapar_caracteres($SQL_datos_conexion, $escapar_datos[0]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[1]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[2]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[3]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[4]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[5]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[6]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[7]));
}elseif($numero_datos==10){
$stmt->bind_param($type, escapar_caracteres($SQL_datos_conexion, $escapar_datos[0]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[1]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[2]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[3]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[4]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[5]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[6]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[7]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[8]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[9]));
}elseif($numero_datos==14){
$stmt->bind_param($type, escapar_caracteres($SQL_datos_conexion, $escapar_datos[0]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[1]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[2]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[3]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[4]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[5]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[6]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[7]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[8]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[9]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[10]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[11]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[12]), escapar_caracteres($SQL_datos_conexion, $escapar_datos[13]));
}
}elseif($numero_datos==1){
$stmt->bind_param('s', escapar_caracteres($SQL_datos_conexion, $escapar_datos));
}
$stmt->execute();
if($id_insert==true){
//Retornar numero de celdas afectadas e ID del registro
$n_celdas=$stmt->affected_rows;
$id_registro=$stmt->insert_id;
return array($n_celdas, $id_registro);
}else{
//Retornar numero de celdas afectadas
return $stmt->affected_rows;
}
$stmt->close();
}else{
mysqli_query($SQL_datos_conexion, $consulta);
}
mysqli_close($SQL_datos_conexion);
}
y la otra la que escapa:
Código PHP:
function escapar_caracteres($SQL_datos_conexion, $datos_a_escapar){
if($datos_a_escapar==null){
return $datos_a_escapar;
}else{
return $SQL_datos_conexion->real_escape_string($datos_a_escapar);
}
}
Si no se puede ver escapado como se si lo hice bien?