我有一个脚本,在将新记录插入数据库之前检查记录是否存在:
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 :(得分:2)
在if条件下使用“== 0
”替换“< 0
”。数据库中的总行数永远不会小于0,它必须是0或大于0.还有一件事永远不会使用 =
来检查操作符 {{1 }} 强>
==
答案 1 :(得分:0)
只检查真假条件
if(mysql_num_rows(mysql_query("select post_url from vinanghinguyen_posts where post_url = '$final_url'")))
{
//insert
}
答案 2 :(得分: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')" );