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 original
public 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();