Portál AbcLinuxu, 13. května 2025 13:51
Mam podezreni, ze je to cimsi (nastavenim?) v php (proto dotaz taky davam sem), protoze se nepamatuju, ze by se mi nekde jinde (napr. v jave) kdy vyskytnul podobny problem.
Predem diky za odpovedi a nakopnuti spravnym smerem
Záleží na tom, jak tam ten soubor vkládáš - asi se u JPG nebo MP3 musí escapovat víc znaků, takže ve výsledku se v SQL posílá více dat než u PDF. Pokud ty soubory kóduješ do hexadecimálního zápisu, pak by to skutečně byla záhada, protože by opravdu byly stejně dlouhé.
To nastavení max_allowed_packet se nastavuje jak na serveru, tak na klientu. Zkus si ověřit, jestli to máš v PHP nastavené stejně jako v MySQL.
Zjisti si, jaké je nastavení max_allowed_packet na hostingu - možná to bude stačit. Pokud ne, napadá mě ten blob ukládat navícekrát - nejdříve poslat první megabajt, pak druhý atd. (při použití transakcí bude konzistence zachována).
Diky, to bude asi vysvetleni, escapuju to pres <i>mysql_real_escape_string</i>, a u mp3 nebo jpg se toho escapuje vazne mnohem vic. Co me ale dal mate je, ze i kdyz na servru (mysqld) nastavim max_allowed_packet na 1MB, v pohode ulozim 2MB pdf. Z toho usuzuju, ze php s tim dela jeste neco dal (ze to asi samo rozkouskuje?), ale u jpg a mp3 to nedela, zatim se mi k tomu nepodarilo vygooglit nic rozumnyho. Kazdopadne rozkouskovat to na 1MB casti s posilat to postupne se mi moc nechce a videl bych to jako asi posledni reseni.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.