2010-03-04 7 views

답변

2
PHP에서 :)

당연히 제목에 대한 인덱스와 마음에 SELECT 1 FROM table WHERE title = '' 스프링 같은

뭔가 :

$query = mysql_query("SELECT 1 FROM table WHERE title = '%s'", 
    mysql_real_escape_string($title)); 
$result = mysql_query($query); 
if(mysql_num_rows($result)){ 
    echo 'The title exists in the database'; 
} 
+1

이 문제는 "선택"을 선택하고 "삽입"하기 전에 다른 사람이 해당 레코드를 삽입 할 수 있다는 것입니다. 가장 신뢰할 수있는 방법은 적절한 고유 키 또는 기본 키가 정의되어 있다고 가정하면 (삽입해야 함) "삽입하고" "중복 키"오류를 잡는 것입니다. – Martin

+0

올바른지, 어떻게 구현할 것인가는 ofcourse의 유스 케이스에 달려있다. INSERT IGNORE 또는 INSERT ON DUPLICATE KEY UPDATE가 더 나은 해결책 일 수 있습니다. – Wolph

0

하거나 실제 삽입 문을 실행하고 기다릴 수 결과. 삽입중인 행이 이미 데이터베이스에있는 경우 테이블의 기본 키를 정의한다고 가정하면 오류를 게시합니다 ... 중복 항목은 허용되지 않습니다 ... 그리고 "catch"할 수 있습니다. .. 단지 생각!

1

제목을 고유하게하려면 제목 열의 고유 제한으로 표현하는 것이 가장 좋습니다.

0
insert ignore into 

삽입되지 않은 경우 삽입되며, 그렇지 않은 경우 op가 삽입됩니다. [가정 제목에 고유 한 제한이 있다고 가정하십시오]

관련 문제