(ajuda) ht exception PDOException with message SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens

01/04/2019

5

PHP

Tudo bem!!!

Estou com esse erro “ht exception ‘PDOException’ with message ‘SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens’”
Ja conferir não acho nome diferentes para acusar esse erro…

codigo abaixo:


action_cliente.php

$sql = ''''UPDATE tab_clientes2 SET codigoean:codigoean, descricao_completa:descricao_completa, products_count_admin:products_count_admin '''';
$sql .= ''''WHERE id = :id'''';

$stm = $conexao->prepare($sql);
$stm->bindValue('''':codigoean'''', $codigoean);
$stm->bindValue('''':descricao_completa'''', $descricao_completa);
$stm->bindValue('''':products_count_admin'''', $products_count_admin);
$stm->bindValue('''':id'''', $id);
$retorno = $stm->execute();

Tabela

CREATE TABLE `tab_clientes2` (
`id` int(11) NOT NULL,
`codigoean` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`descricao_completa` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`products_count_admin` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
COMMIT;
Responder

Posts

02/04/2019

Artur Barth

O erro significa que há uma quantidade de parâmetros inválido entre os Binds e a SQL.
Acredito que o correto seria isso:

$sql = ''''UPDATE tab_clientes2 SET codigoean = :codigoean, descricao_completa = :descricao_completa, products_count_admin = :products_count_admin'''';
$sql .= ''''WHERE id = :id'''';

$stm = $conexao->prepare($sql);
$stm->bindValue('''':codigoean'''', $codigoean, PDO::PARAM_STR);
$stm->bindValue('''':descricao_completa'''', $descricao_completa, PDO::PARAM_STR);
$stm->bindValue('''':products_count_admin'''', $products_count_admin, PDO::PARAM_INT);
$stm->bindValue('''':id'''', $id, PDO::PARAM_INT);
$retorno = $stm->execute();


Espero ter ajudado.
Att.
Artur Barth
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira