Foros del Web » Programando para Internet » PHP »

reemplazar caracteres de una cadena de texto

Estas en el tema de reemplazar caracteres de una cadena de texto en el foro de PHP en Foros del Web. Hola. Tengo un pequeño proyecto en el cual tengo una clase PHP para conectar a Mysql similar a ADOBD. Para protección contra inyección realiza sus ...
  #1 (permalink)  
Antiguo 26/07/2012, 21:13
Avatar de semitasoft  
Fecha de Ingreso: noviembre-2011
Ubicación: Arequipa, Peru, Peru
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Pregunta reemplazar caracteres de una cadena de texto

Hola. Tengo un pequeño proyecto en el cual tengo una clase PHP para conectar a Mysql similar a ADOBD. Para protección contra inyección realiza sus consultas asi.

$sql = $db->Exect("SELECT campo1, campo2 FROM mitabla WHERE id = ? and pass = ? ",array($id, $password));

Lo que hace aquí es: primero revisa o valida la variable $id y $password y luego las reemplaza el signo '?' de acuerdo a su ubicación.

Lo que quiero saber es como reemplazar esos signos con el valor de las variables según su orden.

El Primer '?' con el primer valor array $id, el segundo '?' con el segundo valor del array y asi sucesivamente.

---------------------
Gracias por su apoyo y espero les sirva esta idea para validar entradas a una consulta SQL.
  #2 (permalink)  
Antiguo 27/07/2012, 02:28
 
Fecha de Ingreso: julio-2012
Ubicación: Girona
Mensajes: 63
Antigüedad: 12 años, 4 meses
Puntos: 10
Respuesta: reemplazar caracteres de una cadena de texto

lo suyo sería que hicieras un strpos, y calcularas la posición de cada ?, luego podrias hacer un substring hasta la posición del primero, añadir la variable y concatenar el resto de cadena.

una forma más sencilla:

Código PHP:
Ver original
  1. $sql="SELECT campo1, campo2 FROM mitabla WHERE id = ? and pass = ? "
  2. haz un:
  3. $cadena= str_replace('?', $id, $cadena,1); //Primer elemento
  4. //y un:
  5. $cadena= str_replace('?', $password, $cadena,1); //Segundo elemento

Saludos
__________________
Por favor utilizad HIGHLIGHTS en los códigos insertados para que sean más legibles

Última edición por sgomez; 27/07/2012 a las 02:33
  #3 (permalink)  
Antiguo 27/07/2012, 07:18
Avatar de semitasoft  
Fecha de Ingreso: noviembre-2011
Ubicación: Arequipa, Peru, Peru
Mensajes: 8
Antigüedad: 13 años
Puntos: 0
Respuesta: reemplazar caracteres de una cadena de texto

Gracias men por la Ayuda. Ya logré solucionarlo sin strpos.

El codigo lo comparto con Uds.
Código PHP:
$cadena 'usando ? lo divides y esas partes con conviertes en un ?; luego ? el array y lo concatenas';
$arra = array('EXPLODE','ARRAY','RECORRES');

$corte explode('?',$cadena);
settype($corte,'array');
$i=-1;
foreach(
$corte as $index){
    
$i++;
    
$concatenado.= $index.' '.$arra[$i].' ';
}
echo 
$concatenado
Entonces la idea es Dividirlo en partes por el Signo ? y luego concatenar con los valores del Array. Si hay una FUNCION mas directa, esta bienvenida.

Etiquetas: adobd, mysql, str_replace
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:48.