Я работаю с PDO
подключением для mysql
, и я хотел бы получить некоторое мнение по запросу, который я использую, чтобы проверить, есть ли в базе данных tags
и добавить его в случае нет.PDO: проверить наличие тегов в db, а затем вставить
// the tags are allready processed in $tags array
$check_stmt = $connection->prepare ("SELECT * FROM tags WHERE tag_name = :tag_name");
$save_stmt = $connection->prepare ("INSERT INTO tags (tag_name) VALUES (:tag_name)");
foreach ($tags as $current_tag) {
$check_stmt->bindParam (':tag_name', $current_tag, PDO::PARAM_STR, 32);
$save_stmt->bindParam (':tag_name', $current_tag, PDO::PARAM_STR, 32);
$check_stmt->execute ($current_tag);
if ($check_stmt->rowCount() == 0) $save_stmt->execute ($current_tag);
}
Я не опытный с базами данных, так что я не уверен, что если запрос хорошо проецируется
Возможный дубликат [Какая конструкция БД выполняется быстрее: уникальный индекс и INSERT IGNORE или с помощью SELECT для поиска существующих записей?] (Http://stackoverflow.com/questions/1328074/which-db-design-is- быстрее-а-уникальный индекс-и-вставки игнорируемые или использующих-выбрать-к) – outis