Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/11/2009, 04:44
SiCk949
 
Fecha de Ingreso: octubre-2006
Mensajes: 1
Antigüedad: 17 años, 6 meses
Puntos: 0
Expresión regular para chequear SQL válidas

Hola a todos.
Veréis, llevo un rato intentando crear una funcionalidad, pero no soy capaz por mis limitados conocimientos de ereg.

Lo que tengo es un servicio web que me ejecuta sentencias (si, sentencias en sql en un servidor, para hacer de "recogedor de datos") por unos temas de comunicación.
Claro, yo le paso la SQL y el me devuelve el array de resultados, pero me gustaría hacer una validación previa a estas SQL.

Es decir, yo tendría, por ejemplo, un array con sql validas que se podrían ejecutar:
- select dni from datos
- select nombre from datos where dni=LOQUESEA
Por ejemplo.

Entonces, al servicio web, le llegaría una sql como esta: select nombre from datos where dni=123
Luego, haría un foreach con el array de sql validas y por cada una haría un ereg entre la sql valida del array actual y la sql que me llega. Sino hay ninguna falsa, continua con el codigo.

El tema está en que no sé como hacer bien las sql validas para que funcionen con ereg, puesto que los campos where pueden ser variables e incluir cualquier letra o nº, a ver si alguien puede echarme una mano!

Este es el pseudocodigo que tengo:
Código PHP:
// esta sería la sql que llega
$sql "select nombre from tabla where dni=123";

$validas = array("select dni from tabla""select nombre from tabla where dni=^[*]$");

$continuar false;
foreach (
$validas as $valida)
{
    if (
ereg($valida$sql))
    {
        
$continuar true;
    }
}

if (
$continuar)
{
... 
Muchas gracias y un saludo