Pessoal,
Estou testando um código para evitar SQLInjection.
Aqui tenho minha classe de conexão onde insiro meu 1º código:
> function ExecuteSQL($query, array $params = NULL) { > $this->obj = $this->Conectar()->prepare($query); > **if (count($params) > 0) { --> O ERRO APONTA PARA ESTA LINHA > foreach ($params as $key => $value) { > $this->obj->bindValue($key, $value); > } > } return $this->obj->execute(); }
Aqui é a 2ª parte do código que é inserido na classe de produtos
function GetProdutosID($id) {
//query para buscar produtos de uma categoria específica
$query = “SELECT * FROM {$this->prefix}produtos p INNER JOIN
{$this->prefix}categorias c ON p.pro_categoria = c.cate_id”;//multi query concatenando a query select $query .= " AND pro_id = :id"; $params = array(':id' => (int) $id); $this->ExecuteSQL($query, $params); $this->GetLista(); }
Quando mando executar o código, aparece este aviso:
Warning: count(): Parameter must be an array or an object that implements Countable in C:\xampp\htdocs\lojavirtual\model\Conexao.class.php on line 43, que é tratado por esta linha de código: reporta para a linha em negrito na classe de conexão.
Será que poderiam ajudar nesse aviso. É considerado erro?
Obrigado.