Может ли кто-нибудь мне помочь? , когда я пытаюсь зарегистрировать новый админ, система показывает мне ошибку: 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();
}
}
Пожалуйста, помогите :(
нет коды, нет помощи, но ошибка ясна. вы вставляете столбцы X, но указываете значения Y. подсчет значений и подсчет полей ДОЛЖНЫ совпадать. например 'insert into foo (x, y, z) значения (1,2)' - где 3? –
В будущем вставьте свой код, как блок кода, в свой вопрос, вместо того, чтобы вставлять скриншоты (которые сложнее просмотреть и их невозможно редактировать). –