我想插入一些文章。我想先做一个判断,如果图像值已经在数据库中,则插入一个空值。 更多解释: 如果有这些数据:
title1,image1
title2,image2 //this is image2 first appear, so insert it
title3,image2 //image2 has already in the database, so insert an empty value for just image field
title4
title5,image3
最终数据插入到数据库中应该是这样的:
title | image
title1,image1
title2,image2
title3
title4
title5,image3
这是我的代码,但它仍然将重复值插入数据库。所以有人可以帮助我吗?谢谢。
foreach{//first here has a foreach to make all the articles as a queue
...
if(!empty($image)){ //first judge if the insert article had a image value
$query1 = mysql_query("select * from articles where .image = '".$image."' ");
while ($row = mysql_fetch_array($query1)) {
$image1 = $row['image'];
}
}
if(!empty($image1)){ //make a query first if the image has already in the database
mysql_query("INSERT INTO articles (title,image) SELECT '".$title."','' ");
}else{
mysql_query("INSERT INTO articles (title,image) SELECT '".$title."','".$image."' ");;
}
}
答案 0 :(得分:0)
您的第一个查询包含错误。您必须在“图像”之前删除点:
where **.**image
答案 1 :(得分:0)
正如弗朗切斯科所说,dot可能是该查询的一个问题。
不清楚你在这里要做什么。但是如果你试图阻止相同的图像文件存储两次,那么你应该使用下面这样的东西:
function is_same_file( $image1, $image2 ){
if( filesize($image1) != filesize($image2)
return false;
if( hash_file('md5', $image1) != hash_file('md5', $image2) )
return false;
return true;
}