Sto riscontrando un problema nell'inserire un lungo text (circa 9000 caratteri) con una query INSERT
in php. Ho già provato a cambiare il tipo di colonna (TEXT, MEDIUMTEXT,LONGTEXT)
anche se il tipo di TESTO dovrebbe essere (TEXT, MEDIUMTEXT,LONGTEXT)
per 9000 caratteri. Testato anche con un text privo di caratteri o citazioni speciali.
Stampo la mia query e sembra ok, quindi copio e incolli in phpMyAdmin e la row si inserisce correttamente. Quindi il problema si presenta quando provo ad INSERT dalla mia class php.
Ho provato con un text più piccolo e questo sembra funzionare bene. Ho davvero bisogno di risolverlo. Se qualcuno ha la soluzione per favore fammi sapere. Grazie!
Non ho ancora trovato il problema inserendo i miei lunghi testi, ma ho trovato una soluzione per girarlo, non è molto pulito, ma alless functionrà fino a quando non avrò trovato il vero problema, nel caso qualcuno avesse il lo stesso problema questo è quello che ho fatto.
Suddividi il text in pache di 1000 caratteri, fai il mio INSERISCI e AGGIORNA il field di text nel database aggiungendo le parti di text, quindi il codice:
$textArray = str_split($text,1000);
foreach($textArray as $t){
$model = new Article_Model_UpdateText($id,$t);
}
La query in Article_Model_UpdateText ha il seguente aspetto:
"UPDATE mg_articles SET text = CONCAT (text, '".$text."') WHERE idArticle = ".$id.";";
Spero che questo aiuti qualcuno, grazie per tutte le vostre risposte.
Prova con il tipo di dati BLOB o LONGBLOB in mysql.
Farà il tuo lavoro.
La mia sfera di cristallo suggerisce che il problema potrebbe essere legato a max_allowed_packet:
http://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_max_allowed_packet
(Ma è solo un colpo cieco.)
dovresti usare mysqli_real_escape_string
per memorizzare lunghi testi … sarà come
$variable= mysqli_real_escape_string(connection_variable,user input long text);
ora puoi memorizzare la variabile $ nel tuo database inserendo una query, dovresti memorizzare $ variabile nel field longtext nel database