我有这个代码
switch ($var1) {
case 'corredor':{
$query = ' UPDATE corredor
SET
cedula = :cedula,
nombres = :nombres,
apellidos = :apellidos,
fechanacimiento = :fechanacimiento,
telefono = :telefono,
correo = :correo,
direccion = :direccion,
fecharegistro = :fecharegistro,
estatus = :estatus,
aseguradora_rif =: aseguradora_rif
WHERE cedula = :cedula_old
';
$query_params = array(
':cedula' => $_POST['cedula'],
':nombres' => $_POST['nombres'],
':apellidos' => $_POST['apellidos'],
':fechanacimiento' => $_POST['fechanacimiento'],
':telefono' => $_POST['telefono'],
':correo' => $_POST['correo'],
':direccion' => $_POST['direccion'],
':fecharegistro' => $_POST['fecharegistro'],
':estatus' => $_POST['estatus'],
':aseguradora_rif' => $_POST['aseguradora_rif']
':cedula_old' => $var2
);
try {
$stmt = $db->prepare($query);
$result = $stmt->execute($query_params);
} catch (PDOException $ex) {
$ex->getMessage();
}
#header('Location: index.php?do=listacorredor');
break;
} //fin case
我正在
SQLSTATE [HY093]:参数号无效:绑定变量数与令牌数不匹配
并且我不知道为什么,我的所有参数似乎都匹配,我已经在查询结束时寻找额外的参数并且params所有的绑定都匹配数据库名称所以我在这里丢失了,其他的答案是像缺失的东西,或类似的东西,但真的无法在这里看到问题。
答案 0 :(得分:-1)
你忘了绑定params:)
http://php.net/manual/es/pdostatement.bindparam.php
http://php.net/manual/es/pdostatement.bindvalue.php
在execute()
之前,您需要"分配"将数据对应到数组中的值。
例如:
$stmt = $db->prepare($query);
$stmt->bindParam(':cedula', $_POST['cedula']);
$result = $stmt->execute();