hola amigos espero me puedan ayudar
tengo un formulario con un campo de 32 caracteres y deependiento de si se envian los 32 caracteres se realiza un update a una base de datos estoy tengo problemas para que me funcionen el update
Código PHP:
Ver originalpublic function update_user($db)
{
$id_usuarios = $_POST['id_usuarios'];
$nom_usuario = $_POST['nombre'];
$nom_apellido = $_POST['apellido'];
$usu_usuario = $_POST['usuario'];
$usu_telefono1 = $_POST['telefono1'];
$usu_telefono2 = $_POST['telefono2'];
$usu_correo = $_POST['correo'];
$usu_estado = $_POST['estado'];
$perfil = $_POST['perfil'];
$tamano=$_POST['clave'];
if($result==32){
$upd = $db->prepare('UPDATE usuarios SET nom_usuario = :nom_usuario, nom_apellido = :nom_apellido, usu_usuario = :usu_usuario ,
usu_telefono1 = :usu_telefono1,usu_telefono2 = :usu_telefono2, usu_correo = :usu_correo, usu_estado = :usu_estado, perfil = :perfil
WHERE id_usuarios = :id_usuarios');
$upd->bindParam(':id_usuarios', $id_usuarios);
$upd->bindParam(':nom_usuario', $nom_usuario);
$upd->bindParam(':nom_apellido', $nom_apellido);
$upd->bindParam(':usu_usuario', $usu_usuario);
//$upd->bindParam(':usu_clave', $usu_clave);
$upd->bindParam(':usu_telefono1', $usu_telefono1);
$upd->bindParam(':usu_telefono2', $usu_telefono2);
$upd->bindParam(':usu_correo', $usu_correo);
$upd->bindParam(':usu_estado', $usu_estado);
$upd->bindParam(':perfil', $perfil);
$upd->execute();
}else{
$usu_clave_bd = $_POST['clave'];
$usu_clave = $_POST['clave'];
$upd2 = $db->prepare('UPDATE usuarios SET nom_usuario = :nom_usuario, nom_apellido = :nom_apellido, usu_usuario = :usu_usuario ,usu_clave = :usu_clave,
usu_telefono1 = :usu_telefono1,usu_telefono2 = :usu_telefono2, usu_correo = :usu_correo, usu_estado = :usu_estado, perfil = :perfil
WHERE id_usuarios = :id_usuarios');
$upd2->bindParam(':usu_clave', $usu_clave);
$upd2->execute();
$upd3 = $db->prepare("ALTER ROLE $usu_usuario PASSWORD '$usu_clave_bd'");
$upd3->execute();
$_SESSION['clave_nueva'] = $usu_clave_bd ;
}
}
estoy obteniendo este error
Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\volcanicos\models\user _Model.php on line 138
y esta es la linea $upd2->execute();