Вставить заявление не работает в Scandir

У меня есть следующий запрос, который не работает для конкретного случая.

function scantemp(){
  if ($dir = opendir('../themes/')) {
    $onlyfolder = array('.', '..');
    while (false !== ($files = readdir($dir))) {
      if (!in_array($files, $onlyfolder)) {
          $insert = mysql_query("INSERT INTO `templates` (temp_loc) VALUES ('$files')");
      } 
    }
    closedir($dir);
  }
}

Этот код сканирует папки и вставляет их в базу данных, но он всегда вставляет. Я хочу вставить, если папка не существует. Пожалуйста, порекомендуйте.

1 ответ

Решение

Для этого добавьте уникальный индекс, поставив следующий SQL.

ALTER TABLE templates ДОБАВИТЬ УНИКАЛЬНЫЙ (temp_loc)

после этого, если ваша запись существует, вставка не произойдет. теперь используйте ваш код

function scantemp(){
 if ($dir = opendir('../themes/')) {
    $onlyfolder = array('.', '..');
    while (false !== ($files = readdir($dir))) {
        if (!in_array($files, $onlyfolder)) {
                $insert = mysql_query("INSERT INTO `templates` (temp_loc) VALUES ('$files')");
        }   
    }
    closedir($dir);
}
}
Другие вопросы по тегам