Buenas,
Si ejecuto el siguiente procedimiento en phpmyadmin, con los parámetros 0,0,"", devuelve 152 registros.
Código MySQL:
Ver original SET @query
= "SELECT COUNT(*) INTO @regs FROM t_un WHERE (t_un.familia = 3 OR t_un.familia = 4)"; SET @query
= CONCAT(@query
, " AND t_un.operacion = 4"); SET @query
= CONCAT(@query
, " AND t_un.operacion = 3"); SET @query
= CONCAT(@query
, " AND (t_un.referencia < 7000 OR t_un.referencia > 9999)"); SET @query
= CONCAT(@query
, " AND t_un.referencia >= 7000 AND t_un.referencia <= 9999"); PREPARE stmt
FROM @query
; EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Y si hago la llamada desde PHP, no devuelve nada:
Dónde $pr1 = $pr2 = 0 y $pr4 = ""
Si modifico el procedimiento eliminando el último parámetro (barris), devuelve los 152 registros.
Este último parámetro puede estar vacío o bien contener, por ejemplo " AND (CodigoPostal = 99999 OR CodigoPostal = 88888). Puede ser un sólo código postal, ninguno, cuatro, ....
He añadido un parámetro de salida para visualizar como queda la variable @query y su sintaxis es correcta. Algo tiene que haber, que desconozco, en la forma de pasar el último parámetro.
Gracias