I would like to know if even using filter_var with sanitize you need to use the pdo statements.
Is it safe to do this? or need to use for example bindValue ()
<?php
$con=conectar();
//Recebe número da pagina, caso não exista recebe valor 1
$pg = (isset($_GET['pg'])) ? filter_var($_GET['pg'], FILTER_SANITIZE_NUMBER_INT) : 1;
//Variaveis
$polo = isset($_GET['polo']) ? filter_var($_GET['polo'], FILTER_SANITIZE_NUMBER_INT) : null;
$tipo = isset($_GET['tipo']) ? filter_var($_GET['tipo'], FILTER_SANITIZE_NUMBER_INT) : null;
//Config paginação
$limite = 2;
$inicio = ($pg*$limite) - $limite;
if(!empty($polo) && empty($tipo)) {
$consulta = "SELECT * FROM cursos WHERE polo = $polo ORDER BY nome ASC LIMIT $inicio, $limite";
$contador = $con->query("SELECT count(*) FROM cursos WHERE polo = $polo")->fetchColumn();
}else if(empty($polo) && !empty($tipo)) {
$consulta = "SELECT * FROM cursos WHERE tipo = $tipo ORDER BY nome ASC LIMIT $inicio, $limite";
$contador = $con->query("SELECT count(*) FROM cursos WHERE tipo = $tipo")->fetchColumn();
}else if (empty($polo) && empty($tipo)) {
$consulta = "SELECT * FROM cursos ORDER BY nome ASC LIMIT $inicio, $limite";
$contador = $con->query("SELECT count(*) FROM cursos")->fetchColumn();
}else {
$consulta = "SELECT * FROM cursos WHERE polo = $polo AND tipo = $tipo ORDER BY nome ASC LIMIT $inicio, $limite";
$contador = $con->query("SELECT count(*) FROM cursos WHERE polo = $polo AND tipo = $tipo")->fetchColumn();
}
$puxa_cursos = $con->prepare($consulta);
$puxa_cursos->execute();