2011-11-22 74 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')");