2011-11-22 5 views
0

之前,我有一個腳本來檢查,如果一個記錄插入新記錄到數據庫之前就存在:檢查存在插入

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

如果post_url是已經在數據庫中,然後不要插入。我檢查數據庫。我有一些post_url$final_url但它仍然正常插入。爲什麼?

+0

不好意思做的工作,也無法理解你的問題 – ariefbayu

+0

和問題是什麼? –

+0

需要腳本檢查數據是否需要插入數據庫中是否存在 – user1059103

回答

2

如果條件中使用「== 0」替代「< 0」。在數據庫中的行總數將永遠不會小於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

只是檢查真假條件

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')");