Como solucionar o erro “ERROR: bind message supplies 1 parameters, but prepared statement \“pdo_stmt_00000002\” requires 2”?

erro: bind message supplies 1 parameters, but prepared stat...

A quantidade de passagem de parâmetros devem ser ajustadas.

Esse erro ocorre quando há parâmetros  pedidos no sql que não estão declarados na passagem por bindValue ou bindParam.

Por exemplo:


$sql = "SELECT * FROM usuario WHERE id = :codigo AND us.senha = :senha";
            $query = $db->prepare($sql);
            $query->bindParam(':codigo', $user, PDO::PARAM_INT);
            $query->execute();

Faltou ser informado na query o bindParam :senha por isso está ocorrendo o erro.
Para corrigir basta inserir mais uma query ficando assim:

$sql = "SELECT * FROM usuario WHERE id = :codigo AND us.senha = :senha";
            $query = $db->prepare($sql);
            $query->bindParam(':codigo', $user, PDO::PARAM_INT);
            $query->bindParam(':codigo', $user, PDO::PARAM_INT);
            $query->execute();

Quer acompanhar as novidade do site?

Leia mais em: ww.php.net/manual/pt_BR/pdost...

Como solucionar o erro “ERROR: bind message supplies 1 parameters, but prepared statement \“pdo_stmt_00000002\” requires 2”?

Última atualização: 2023-02-15