Запрос вставки строки в таблицу с условием наличия файла в директории

Тема в разделе "Базы данных", создана пользователем 1van, 22 мар 2018.

Модераторы: latteo
  1. velwind

    velwind Создатель

    Регистр.:
    25 май 2018
    Сообщения:
    26
    Симпатии:
    7
    PHP:
    /** ... **/
    $directory = new RecursiveDirectoryIterator("/home/item/");
    $iterator = new RecursiveIteratorIterator($directory);
    $regex = new RegexIterator($iterator'/^(?P<basename>.+)\.(jpg|png|gif|jpeg)$/i'RecursiveRegexIterator::GET_MATCH);
    foreach (
    $regex as $item) {
         
    $a[] = $item;
    }
    /** ... **/
    foreach ($a as $i => $match) {
        
    $filename $match[0];
        
    $baseName $match['basename'];
    Будет работать если PHP версии 5.2.х и выше
    В $baseName лежит имя файла без расширения, в $filename - полное имя
     
    Последнее редактирование: 28 май 2018
    1van нравится это.
  2. bettelli

    bettelli Создатель

    Регистр.:
    16 сен 2017
    Сообщения:
    28
    Симпатии:
    7
    Don't forget about transactions. Performance is good, but simple (IF EXISTS..) approach is very dangerous.
    When multiple threads will try to perform Insert-or-update you can easily get primary key violation.