Cuando trabajamos con PDO y PHP, ya sea en MySQL u otros motores, puede aparecer el siguiente error que hoy voy a explicar y solucionar:

Invalid parameter number: number of bound variables does not match number of tokens in archivo.php

La solución: el número de parámetros

Básicamente se trata de que al preparar una consulta ponemos un número de variables, y al ejecutarla no ponemos el mismo número de datos.

Por ejemplo, una consulta así:

update personas set nombre = ?, edad = ?

Tenemos dos signos de interrogación o placeholders, así que deberíamos pasar dos datos así:

$sentencia->execute(array("Luis", 22));

Pero el error ocurre si pasamos un distinto número de datos, por ejemplo:

$sentencia->execute(array("Luis"));

Ya que solo estamos pasando una variable, pero la consulta esperaba 2.

Recuerda que esto ya lo había explicado con el error HY093 en MySQL.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto