Cita:
Iniciado por gnzsoloyo
Pues yo miro el manual de referencia ([URL="http://php.net/manual/es/function.sprintf.php"]PHP - sprintf[/URL]), y no veo problemas en entender los ejemplos de cómo crear una consulta con varios parámetros entrantes.
¿Cuál es exactamente tu duda?
Que cualquiera de los campos: "categoria_id" o "categoria_2" sean igual a un mismo valor que envié por GET.
Es muy sencillo hacerlo en una query, pero con sprintf no acierto bien.
Por ejemplo,
//
Tengo un valor: $categoria = 30
query="SELECT * FROM tabla_categorias
WHERE categoria_1 = 30 OR categoria_2=30 OR categoria_3=30"; //(
fácil, pero susceptible de SqlInyection)
//
He comprobado que esto me funciona:
sprintf("SELECT * FROM tabla_categorias
WHERE categoria_1 = %s OR categoria_2= %s OR categoria_3= %s", GetSQLValueString($categoria, "int"),GetSQLValueString($categoria, "int"),GetSQLValueString($categoria, "int"));
//Pero.......
¿SE PUEDE SIMPLIFICAR A ALGO ASÍ O PARECIDO?
sprintf("SELECT * FROM tabla_categorias
WHERE ((categoria_1,categoria_2,categoria_3) = %s)", GetSQLValueString($categoria, "int"));
...para poder declarar sólo una vez
GetSQLValueString($categoria, "int")?