Есть перечень файлов в директории (более 15 тыс.)
Пробовал сначала данные о файлах вносить в отдельную таблицу, а потом делать выборку. Но чтобы внести данные, опять надо делать много запросов, а если одним через implode
то сервер подвисает и не срабатывает, т. к. в VALUES() более 15 тыс. значений получается.
Есть идеи?
p.s.
Решил проблему вставкой VALUES по 1000 шт.
А вообще неправильный запрос был, т. к. там надо было каждый элемент VALUES брать в (), иначе получается я в одно поле пытаюсь засунуть тысячи полей.
вот так
PHP:
скопировать код в буфер обмена
$array = scandir(self::IMG_PROD);//получили массив с именами файлов $y=0; for($i=2 , $c=count($array); $i<$c; $i++) { $y++; $filename = $array[$i]; if(substr($filename, 0, 5)!=='full_' and substr($filename, 0, 6)!=='thumb_'){ if($y<1000){ $insertValues[]="('".$filename."')"; }else{ $sql = "INSERT INTO `".$this->_exist_image ."` (`image_name`) VALUES ". implode(",", $insertValues); echo $sql.'<br>'; $this->db->exec($sql); $y=0; } } }
А кто как добавляет большие объёмы? М. б. лучше разбивать не по 1000, а по 2000, например, или 5000?(Отредактировано автором: 04 Января, 2015 - 19:57:15)
|