tokensnull tokens sqlstate parameter number not invalid hy093 does bound php pdo

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'']);