2015-01-05 4 views
-1

중복 항목 '20'을 보여 않습니다왜 쇼 MySQL은 키 'USER_ID'에 대한 중복 항목 오류

$userid = its foreign key (20) 


$query = mysql_query("insert into qualification (q_id,course_name,institute_name,pass_year,user_id) values ('','$coursename','$institutename','$passyear','$userid')") or die(mysql_error()); 

사람이 오류를 생략하고 같은 사용자 ID에 여러 개의 레코드를 추가하는 방법에 대한 아이디어가 있습니까?

+5

고유 한 제약 조건을 제거하려면 데이터베이스 구조를 수정하십시오. –

+0

기존 행을 덮어 쓰거나 고유 키가없는 경우 새로 삽입해야하는 경우 REPLACE INTO 구문을 사용하는 것이 좋습니다. –

+0

[mysql_ *'functions] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)를 사용하지 마십시오. 더 이상 유지 관리되지 않으며 [공식적으로 권장되지 않습니다] (https://wiki.php.net/rfc/mysql_deprecation). 대신 [prepared statements] (http://en.wikipedia.org/wiki/Prepared_statement)에 대해 알아보고 [PDO] (http://us1.php.net/pdo) 또는 [MySQLi] (http : //)를 사용하십시오. us1.php.net/mysqli). –

답변

1

이 오류가 발생하면 데이터베이스의 user_id에 대해 고유 키 또는 기본 키 제약 조건이 적용됩니다. 마크 B는 이미 말했습니다. user_id에서 고유 제한 조건을 제거하십시오. 왜 고유 제한 조건을 제거

:

당신은 마크에게 물었다?

단순히 다음 테이블에 동일한 user_id 가진 두 개의 레코드를 가질 수 없기 때문에. 그런 다음 테이블의 키로 사용할 수도 없습니다. user_id에 대한 색인을 사용하여이 필드에 대한 조회 속도를 높일 수 있습니다.