Foros del Web » Programación para mayores de 30 ;) » RegExp »

RegEx filtrar despues de WHERE

Estas en el tema de RegEx filtrar despues de WHERE en el foro de RegExp en Foros del Web. Buenas tardes. Tengo una duda que no me deja avanzar con las expresiones regulares. A ver si pueden orientar o ayudar un poco. Quiero añadirle ...
  #1 (permalink)  
Antiguo 27/07/2015, 08:57
Avatar de Tollelle  
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 11 meses
Puntos: 0
RegEx filtrar despues de WHERE

Buenas tardes.

Tengo una duda que no me deja avanzar con las expresiones regulares.
A ver si pueden orientar o ayudar un poco.

Quiero añadirle comillas a todos los parámetros que vayan destrás de WHERE en un query mysqli.

Les pongo el código:

Código PHP:
Ver original
  1. $query = 'manolito = gafotas SELECT * FROM niveles WHERE 1 =\'1\' OR 2 = AND 3= \'3\' AND 4   = 4 OR 5= OR 6= 66 AND 7 =';
  2.  
  3. $patron = '/(\=|\=\s+)(\z|([\w]+))/i';
  4. $sustitucion = ' = \'$2\' ';
  5.  
  6. $resultado = preg_replace($patron, $sustitucion, $query);
  7. echo "$query<br />$resultado";
  8.  
  9. //// IMPRIME: manolito = 'gafotas' SELECT * FROM niveles WHERE  1 ='1' OR 2 = '' AND 3= '3' AND 4 = '4' OR 5 = '' OR 6 = '66' AND 7 = ''

Lo que estoy intentando es que me transforme solo lo que está después del WHERE y no antes.

¿Se les ocurre alguna forma?

Gracias de antemano.

Un saludo.
  #2 (permalink)  
Antiguo 27/07/2015, 09:16
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 10 meses
Puntos: 69
Respuesta: RegEx filtrar despues de WHERE

Y por qué no las agregas manualmente?
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 27/07/2015, 09:32
Avatar de Tollelle  
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: RegEx filtrar despues de WHERE

Cita:
Iniciado por chronos682 Ver Mensaje
Y por qué no las agregas manualmente?
Vaya pregunta... ya puestos a preguntar, podrías haber preguntado ¿para qué queremos las expresiones regulares si podemos escribir todo como queramos directamente?...

Es evidente que busco automatizar algún proceso... puede que intente migrar una vieja aplicación con un centenar de scripts hacia mysqli y para ello estoy implementando una serie de clases y funciones que me centralicen las labores de conexión y manejo de bases de datos para que cualquier modificación global o migración no sea un calvario.
  #4 (permalink)  
Antiguo 27/07/2015, 09:38
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 10 meses
Puntos: 69
Respuesta: RegEx filtrar despues de WHERE

En ningún lado estás especificando nada de eso, simplemente preguntaste cómo colocar comillas, yo adivino no soy para saber qué quieres hacer con el código.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #5 (permalink)  
Antiguo 27/07/2015, 09:50
Avatar de Tollelle  
Fecha de Ingreso: enero-2005
Mensajes: 64
Antigüedad: 19 años, 11 meses
Puntos: 0
Respuesta: RegEx filtrar despues de WHERE

Cita:
RegEx filtrar despues de WHERE
Cita:
Tengo una duda que no me deja avanzar con las expresiones regulares.
Cita:
Lo que estoy intentando es que me transforme solo lo que está después del WHERE y no antes.
Hombre... yo creo que con el título, la presentación de la duda, el ejemplo, la formulación final y las etiquetas usadas, creo que queda claro que la duda es con las expresiones regulares ¿no?

Gracias de todas formas.
  #6 (permalink)  
Antiguo 27/07/2015, 12:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: RegEx filtrar despues de WHERE

Cita:
Iniciado por Tollelle Ver Mensaje
Hombre... yo creo que con el título, la presentación de la duda, el ejemplo, la formulación final y las etiquetas usadas, creo que queda claro que la duda es con las expresiones regulares ¿no?

Gracias de todas formas.
¿Y entonces por qué no colocaste tu tema en el sub-foro de expresiones regulares?

RegExp: http://www.forosdelweb.com/f183/

Además, por lo poco que he leído, sería mejor usar consultas preparadas.

No entiendo porque perder el tiempo lidiando con comillas.

Por otro lado, podrías usar un look-behind en la expresión regular para mirar hacia atrás.

Cita:
/(?<=\bWHERE\b)/
Igual, consulta un referencia de RegExp.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: mysql, php, regex
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 09:47.