2016-07-15 2 views
-4

Может ли кто-нибудь мне помочь? , когда я пытаюсь зарегистрировать новый админ, система показывает мне ошибку: SQLSTATE [21S01] я получил следующий код с подобным вопросом, но это не решает вопросSQLSTATE [21S01]: Вставить список значений не соответствует списку столбцов: 1136 Число столбцов не соответствует количеству значений в строке 1

это мой class.admin.php, содержать свою функцию для регистрации нового администратора

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(); 
    } 
} 

это мой админ-register.php это содержит мой HTML-форм и проверки кода PHP

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(); 
    } 
} 

Пожалуйста, помогите :(

+0

нет коды, нет помощи, но ошибка ясна. вы вставляете столбцы X, но указываете значения Y. подсчет значений и подсчет полей ДОЛЖНЫ совпадать. например 'insert into foo (x, y, z) значения (1,2)' - где 3? –

+0

В будущем вставьте свой код, как блок кода, в свой вопрос, вместо того, чтобы вставлять скриншоты (которые сложнее просмотреть и их невозможно редактировать). –

ответ

1

У вас есть только семь столбцов, определенных в вашем INSERT INTO. Вам нужно включить туда гендерный столбец.

Так не включает admin_gender под admin_lastname

+0

Спасибо! это ошибка, большое спасибо за вашу помощь! : ') –

Смежные вопросы

 Смежные вопросы