Esta te va a dar errores si $distinct contiene algo diferente a "DISTINCT, para lo cual ni siquiera tiene sentido ponerlo así. Sería muchísimo más fácil agregar eñ "DISTINCT" dinámicamente, y no con una variable.
Esto te puede dar muchos problemas:
- LIMIT sólo admite valores enteros. No permite usar funciones, cálculos o variables locales (de SQL),
sólo numeros enteros. Lo que se hace con PHP es agregar esos valores en la sentencia pero de forma tal que sólo queden números.
- Ese ORDER BY te dará error de sintaxis, porque estás poniendo dos variables cuyo valor sólo pueden ser el nombre de una columna, de un alias, una función de MySQL o un entero que representa la ubicación de la columna, pero como entre
$orderby y
$limits no has puesto ninguna coma, si no está generará un error de sintaxis (sin contar los que se pueden producir de acuerdo al contenido de esas variables, si están mal manejadas).
¿Por qué no te das una vuelta por las
FAQs de PHP y te fijas cómo sugieren hacer este tipo de cosas? Hay cosas muy buenas allí.