Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/01/2016, 10:36
jonyjdv
 
Fecha de Ingreso: julio-2014
Mensajes: 115
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: real_escape_string Problema

Cita:
Iniciado por pateketrueke Ver Mensaje
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($typeescapar_caracteres($SQL_datos_conexion$escapar_datos[0]), escapar_caracteres($SQL_datos_conexion$escapar_datos[1]));
                    }elseif(
$numero_datos==3){
                        
$stmt->bind_param($typeescapar_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($typeescapar_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($typeescapar_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($typeescapar_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?