php - tokens - PDOStatement:: execute(): SQLSTATE[HY093]: número de parámetro inválido: parámetro no definido
invalid parameter number number of bound variables does not match number of tokensnull (3)
A continuación está mi código, no puedo resolver este error. Cualquier ayuda es apreciada. Estoy tratando de actualizar una tabla en mi base de datos.
public function updateUnit($params){
$user = ''monil'';
$password = ''Masters123'';
$dbh = new /PDO(''mysql:host=127.0.0.1;dbname=tcsdb'', $user, $password);
$task=array('':UnitCode''=>$params[''UnitCode''],'':UnitDescription''=>$params[''UnitDescription''] ,
'':UnitName''=>$params[''UnitName''], '':UnitID''=>$params[''UnitID'']);
echo $params[''UnitID''];
$sth = $dbh->prepare(''UPDATE unit SET UnitCode = :UnitCode,''
. ''UnitDescription = :UnitDescription,UnitName = :UnitName WHERE UnitId=:UnitId'');
$sth->execute($task);
return true;
}
:UnitID != :UnitId
Los parámetros distinguen entre mayúsculas y minúsculas.
El mismo error surge cuando faltó: dos puntos al crear una declaración.
ex: la declaración siguiente arroja un error de parámetro no válido porque falta la contraseña en VALUES: dos puntos.
$stmt = $db->prepare(''INSERT INTO members (username,password) VALUES (:username, password)'');
Se pueden producir los mismos errores si usa un "." punto en bindParam
ex.
$query = "select * from t where t1 = :foo.bar";
$stmt = $pdo->prepare($query);
$stmt->execute(['':foo.bar'' => ''blah'']);