Puedes prevenir la inyeccion de sql en php utilizando Prepared Statements y Parametrized Queries.
Basicamente es decirle a que la consulta que se va ejecutar va recibir estos parametros de este tipo, sin concatenar nada ya esto delimita que te puedan inyectar codigo sql.
ejemplo:
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?');
$stmt->bind_param('s', $name); // La 's' se especifica que el tipo de variable es igual a String.
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
// Do something with $row
}
Ya con esto nos ahorramos varios dolores de cabeza e impedimos que ejecuten codigo que no corresponde al funcionamiento de la aplicacion.