Мне было интересно, как я могу проверить значение из массива, чтобы увидеть, если его в базе данных, если он еще не добавлен в базу данных. Как я могу это сделать, используя PHP & MySQL?PHP & MySQL question
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
Нет, он сообщает MySql, что вы хотите вставить строку, но если она уже существует (как определено для первичного ключа, который в этом случае, вероятно, должен быть 'category_id' +' post_id'), он не должен пытаться вставить новую запись, но вместо этого обновите существующий. Обычно вы обновляете столбец 'updated_at' или аналогичный в части обновления запроса. – troelskn
Я хочу прекратить добавлять или обновлять строку таблицы с повторяющимся значением. – help