Вставить заявление не работает в 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);
}
}