Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Problema "Varchar(...)" molto elevato

    Ciao ragazzi,
    ho una form che aggiorna un campo testuale Varchar(...) di una determinata riga scelta tramite ID: tutto funziona perfettamente (form + php + mysql).

    Il mio problema che ora devo aggiornare il campo da Varchar(100) a Varchar(500000) (Sì, cinquecentomila caratteri: phpMyAdmin mi ha trasformato quel varchar(500000) in "medium text") -> purtroppo non posso effettuare altre modifiche (come comando dato dal mio datore di lavoro).
    Il problema è la modifica di questo campo: un banale ...UPDATE TABELLA SET TESTO='$valore' WHERE ID=10.... dove $valore=$_POST['testoAmpio']; mi genera errore con php+mysql.

    Come posso fare?

    PS: testoAmpio è un valore che arriva da una <textarea=... /> con un semplice form in HTML.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    VARCHAR può essere al massimo 65535, quindi sei fuori range, per questo ti viene cambiato in MEDIUMTEXT.

    Che errore ti viene generato dalla query? Cosa dice esattamente?

  3. #3
    Quando viene eseguita la query di inserimento: mysql_...(...) or die("Errore"); mi scrive "Errore". Come posso gestire il mediumtext con php?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Come un qualsiasi campo di testo.

    Nel die() dovresti farti dire l'errore riscontrato, non metterci una semplice stringa 'Errore' che non ti da alcuna informazione.

    Usa
    die( mysql_errno().' - '.mysql_error() );

  5. #5
    Ho provato ad inserire un testo lungo (articolo preso a caso dal sito www.ansa.it) ed ecco qua:
    codice:
    1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Gray, sono almeno 12. Due killer della sparatoria nella Navy Yard di Washingt' at line 1
    E' un errore di sintassi ma però, se come testo metto "Prova provetta" allora è tutto ok!

    Come posso superare questo problema?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il testo da inserire passalo alla funzione mysql_real_escape_string(), probabilmente contiene degli apici che troncano la stringa e ti fa sballare la query.

  7. #7
    Funziona alla grande, grazie mille!
    PS: ti vorrei chiedere un'ultima cosa: per tenere intatte le lettere accentate e tutti i segni di punteggiatura, come dovrei operare a livello di mysql? Cioè nel campo "testo", invece di scegliere "latin_1_swedish" cosa posso mettere? Grazie mille!

  8. #8

  9. #9
    Grazie moltissimo per l'aiuto!

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Prego

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.