2011-11-22 4 views
0

전에 레코드가 데이터베이스에 새 레코드를 삽입하기 전에 존재하는지 확인하는 스크립트가 존재한다. 데이터베이스에 체크인합니다. 일부 post_url$final_url과 비슷하지만 여전히 정상적으로 삽입됩니다. 왜?점검 삽입

+0

죄송 무시를 말하는하여 작업을 수행 할 수 있습니다, 귀하의 질문에 – ariefbayu

+0

을 이해하고 문제는 없다? –

+0

스크립트 검사가 필요합니다. 데이터가 데이터베이스에 삽입되어야합니다. – user1059103

답변

2

if 조건의 "< 0"대신 "== 0"을 사용하십시오. 데이터베이스에있는 행의 총 수는 0보다 작은, 그것은 결코 ==

if(mysql_num_rows(mysql_query("select post_url from vinanghinguyen_posts where post_url = '$final_url'")) == 0) 
{ 
    //insert 
} 
+0

여전히 작동하지 않습니다 – user1059103

+0

지금 답변을 확인하십시오 –

+0

전체 코드를 조건에 삽입하고 쿼리를 삽입하십시오. 또한 쿼리가 던지는 결과를 var_dump –

0

단지 진실과 거짓 확인 검사 연산자 사용 =를 사용하지 0 또는 0보다 큰 그리고 한 가지 더 없어야합니다 않습니다 조건

if(mysql_num_rows(mysql_query("select post_url from vinanghinguyen_posts where post_url = '$final_url'"))) 
{ 
    //insert 
} 
0

adding a unique key하여 스키마에 post_url의 고유성을 적용하는 것이 작업을 수행하는 더 좋은 방법.

CREATE UNIQUE INDEX vinanghinguyen_posts_unique_url 
ON vinanghinguyen_posts(post_url) 

은 이제 데이터베이스가 중복 된 항목

//clean the data 
$final_url = mysql_real_escape_string($final_url); 

mysql_query("INSERT IGNORE INTO 
       vinanghinguyen_posts 
       VALUES 
       ('$final_url')");