can anyone help me? when i try to register a new admin, system show me an error: SQLSTATE[21S01] I got the following code from similar question but it didn't solve the question
this is my class.admin.php, contain my function for register a new admin
public function registro_admin($auser, $aemail, $apass, $adep, $aname, $alast, $agender, $amatricula){
try{
$new_password = password_hash($apass, PASSWORD_BCRYPT);
$stmt = $this->db->prepare("INSERT INTO Admin(admin_user,
admin_email,
admin_password,
admin_departamento,
admin_name,
admin_lastname,
admin_matricula)
VALUES(:auser, :aemail, :apass, :adep, :aname, :alast, :agender, :amatricula)");
$stmt->bindparam(":auser", $auser);
$stmt->bindparam(":aemail", $aemail);
$stmt->bindparam(":apass", $apass);
$stmt->bindparam(":adep", $adep);
$stmt->bindparam(":aname", $aname);
$stmt->bindparam(":alast", $alast);
$stmt->bindparam(":agender", $agender);
$stmt->bindparam(":amatricula", $amatricula);
#$stmt->bindparam(":apic", $apic);
$stmt->execute();
return $stmt;
}catch(PDOException $e){
echo $e->getMessage();
}
}
this is my admin-register.php this contain my html form and php code validation
else if(strlen($apass) < 6){
echo '<script>alert("Password must be contain more than 6 characters");</script>';
}else{
try{
$stmt = $db_con->prepare("SELECT admin_user, admin_email FROM Admin WHERE admin_user=:auser OR admin_email=:aemail");
$stmt->execute(array(':auser'=>$auser, ':aemail'=>$aemail));
$row=$stmt->fetch(PDO::FETCH_ASSOC);
if($row['admin_user'] == $auser){
echo '<script>alert("Lo sentimos, el usuario ya existe");</script>';
}
else if($row['admin_email'] == $aemail){
echo '<script>alert("Lo sentimos, el correo ya existe");</script>';
}else{
if($admin->registro_admin($auser, $aemail, $apass, $adep, $aname, $alast, $agender, $amatricula)){
echo '<script>alert("Administrador Agregado con Éxito");</script>';
}
}
}catch(PDOException $e){
echo $e->getMessage();
}
}
Please help :(
You only have seven columns defined in your INSERT INTO
. You need to include the gender column there.
So include admin_gender
under admin_lastname