Вместо составного ключа вставляются повторяющиеся значения в базу данных phpadmin сервера xampp - PullRequest
0 голосов
/ 06 апреля 2019

Я сначала создал таблицу только с одним первичным ключом, а затем преобразовал еще 1 столбец в первичный ключ, используя:

ALTER TABLE students DROP PRIMARY KEY, ADD PRIMARY KEY(student_id, email);

Составной ключ создан успешно, но составной ключ не работает так, как он должен работать.

При вставке тех же значений электронной почты, но с другой вставкой базы данных идентификатора, значение успешно не дает мне catch операторов

Я пробовал этот код:

 try{
        $dbhandler = new PDO('mysql:host=127.0.0.1;dbname=project_db','root','');

        $dbhandler->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        $sql="insert into students (student_id,faculty,password,cpi,first_name,last_name,birthdate,email,contact_no,participate,leader,allocated) values (?,?,?,?,?,?,?,?,?,?,0,0)";    //   leader is 0 means not decided
        $query=$dbhandler->prepare($sql);
        $p=0;
        if(isset($_POST['s_participate']))
        {
            $p=1;
        }
        $r=$query->execute(array($_POST['s_id'],$_SESSION['faculty'],$_POST['s_id'],$_POST['s_cpi'],$_POST['s_f_name'],$_POST['s_l_name'],$_POST['s_birthday'],$_POST['s_email'],$_POST['s_contact'],$p));
}
catch(PDOException $e){
            $msg='student with this id is already exist';
            $temp=1;
            header("location:./insert_student.php?msg=".$msg);
    }
if($r){
        header("location:./insert_student.php?msg=Student ".$_POST['s_f_name']." with id ".$_POST['s_id']." is successfully added");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...