La regla de oro de un programador es "Nunca confíes en el usuario" ¿Qué quiere decir esto? significa que toda variable que recibamos de un usuario, ya sea por método GET o POST (esto incluye $_FILES) debemos siempre validar de que sea un valor valido. Me explico:
En tu ejemplo anterior, $offset debe validarse como float y ver si realmente es un decimal o no de esta manera:
Código PHP:
Ver original$offset = $argv[0];
if(is_float($offset)){ //si $offset es un decimal continuamos con la operacion $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
}else{ //de lo contrario evitamos que se ejecute un codigo que no esta permitido
echo "Datos incorrectos";
}
Claro este solo es un ejemplo, a parte de esto, se deberían usar sentencias preparadas para evitar otras maneras de mysql inyection, pero la idea es la misma, siempre verificar los datos y usar las herramientas adecuadas para solucionar el problema en cuestión.
Saludos