Varbūt kādam ir idejas:
uzdevums: nepieciešams dabūt datu bāzē longblob kolonnā 3mb lielu bināru failu no php.
problēmas:
- load_file dažādu tehnisku iemeslu dēļ lietot nevar;
- tīrā veidā liekot datu bāzē, selects pārkāpj pāri db pieļaujamajām robežām (max_packet_size);
- sadalot failu pa blokiem un grūžot datu bāzē ar update my_table set file_data = concat(file_data, '...') where id=...
concat apraujas pie 1048576 baitiem, pēc kuriem atdod tikai NULL -- pieņemu, ka atkal tiek uzkāpts kādam konfigurācijas ierobežojumam.
(concat vari pārbaudīt pats ar "select length(concat(repeat('A', 1048576), 'a'));" )
bet failu iekšā dabūt vajag, un no php. mysql nav mans, un parametru mainīšanu diez vai izdotos sarunāt, tā ka apvedceļa risinājums būtu labāk, kaut gan problēmas cēlonis mani arī interesē.
Ir kādas idejas?
Mainīt datu bāzes struktūru, glabāt failu failsistēmā, utml, šoreiz nebūs risinājums. Kaut kā taču ļaudis aizpilda 2gb blobus, vai ne tā? :D