我想知道如何檢查數組中的值,看看它是否在數據庫中,如果它不再次添加到數據庫。我將如何使用PHP & MySQL來做到這一點?PHP&MySQL問題
PHP代碼。
for ($x = 0; $x < count($cat_id); $x++){
$cat_query = "INSERT INTO posts_categories (category_id, post_id, date_created) VALUES ('" . mysqli_real_escape_string($mysqli, strip_tags($cat_id[$x])) . "', '" . mysqli_real_escape_string($mysqli, strip_tags($post_id)) . "', NOW())";
}
修改PHP代碼。
if(isset($cat_id)){
for($x = 0; $x < count($cat_id); $x++){
$check_query = mysqli_query($mysqli,"SELECT category_id FROM posts_categories WHERE category_id = '" . $cat_id[$x] ."' AND post_id = '" . $post_id . "'");
if ($check_query == TRUE) {
unset($cat_id[$x]);
}
}
for($x = 0; $x < count($cat_id); $x++){
$cat_query = "INSERT INTO posts_categories (category_id, post_id, date_created) VALUES ('" . mysqli_real_escape_string($mysqli, strip_tags($cat_id[$x])) . "', '" . mysqli_real_escape_string($mysqli, strip_tags($post_id)) . "', NOW())";
}
}
這會阻止我添加或更新表格行嗎? – help 2010-08-22 11:03:03
不,它告訴MySql你想要插入一行,但是如果它已經存在(根據主鍵確定,在這種情況下可能應該是'category_id' +'post_id'),它不應該嘗試插入新記錄,而是更新現有記錄。您通常會在查詢的更新部分更新列'updated_at'或類似內容。 – troelskn 2010-08-22 11:27:04
我想停止添加或更新具有重複值的表格行。 – help 2010-08-22 11:48:50