Errore nell'INSERT di dati in un blob che dovrebbe contenerli [era: Errore mySQL]
Ciao a tutti,
perche' se imposto un campo del DB mySQL a mediumblob, che dovrebbero essere circa 16kk byte, e provo ad inviare un file di circa 3kk byte, mi da errore per il superamento del limite massimo?
Succede quando invio un dato tramite form che supera i controlli che impongo io, ovvero col PHP stabilisco un massimo di 3000kb, ma poi mi da un errore in query string.
Sì, perché a livello di database si accetta un massimo di 1MB per query. Capisco che è un limite un po' basso, ma i sistemisti hanno ritenuto che sia meglio così e in genere non crea problemi.
Nel tuo caso per aggirare il problema credo che dovresti spezzare il contenuto caricato in più pezzi (tipo da mezzo mega, usando substr), inserire il primo con INSERT e poi gli altri con UPDATE facendo una concatenazione (CONCAT() di mysql). Non è il massimo, ma una volta che hai scritto una funzioncina la puoi riutilizzare senza pensarci troppo.
«È una mia peculiarità distorcere la verità e inventarne di nuove.»
«I tuoi orientamenti hanno su di me un effetto prossimo allo zero.»
Se, come penso, il problema è legato a questa richiesta, perchè nel DB non memorizzi solo l'URL dell'immagine e l'immagine vera e propria la salvi nel filesystem?