Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    [mysql] problema con le Collation

    Da quando ho inserito phpMyAdmin 2.6-pl3 ho un problemino non indifferente con la gestione delle stringhe in mysql. Ad esempio se io volessi "selezionare" il record di una tabella dove in un campo è presente il solo valore "zannas" dovrei creare una query sql di questo tipo:

    SELECT *
    FROM `phpbb_users`
    WHERE `username` = CONVERT( _utf8 'zannas'
    USING latin1 )
    COLLATE latin1_bin

    invece di una semplice:

    SELECT *
    FROM `phpbb_users`
    WHERE `username` = 'zannas'

    come mai? e a che serve la collazione della connessione di MySQL? qual'è quella di default di solito on line? inoltre ogni tabella ha una sua collation specificata? perchè questo? nelle altre versioni non mi pare non ci fosse, fa solo casino....e non è finita qui...poi a sua volta ogni campo di testo ha una sua collation...e perchè se vado a creare una tabella o un campo e non seleziono la collation di default mi viene creata con latin1_swedish_ci ?? potreste darmi i parametri di default che si trovano di solito in un server on line? purtroppo ho fatto un casino in locale mettendo un pò di utf8_unicode_ci , altri latin1_bin e poi rimangono le tabelle e i campi fatti senza specificare la collation che hanno valore latin1_swedish_ci

    Come faccio a standardizzare tutto adesso? aiutatemi please...è un grosso freno per me questo..

  2. #2
    • character_set_client utf8
      character_set_connection latin1
      character_set_database latin1
      character_set_results utf8
      character_set_server latin1
      character_set_system utf8
      collation_connection latin1_swedish_ci
      collation_database latin1_swedish_ci
      collation_server latin1_swedish_ci

    ecco ho trovato la radice di tutto il problema che mi si è ripresentato.....come vedete i primi 5 valori possono anche andarmi bene....ma gli altri come faccio a cambiarli? sono le System Variabiles del my Server MySQL in locale...datemi una mano...grazie in anticipo

  3. #3
    Anch'io ho lo stesso problema. Come si può risolvere ?

  4. #4
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    allora...

    charset e collation sono un aggiunta di mysql 4.1 e non di phpmyadmin


    i charset sono il set di caratteri da utilizzare. Mentre le collation sono gli algoritmi di confronto fra i vari charset. Cioè come si deve comportare mysql quando confronta due stringhe appartenenti allo stesso charset

    Se queste nuove caratteristiche non interessano consiglio a tutti di usare come collation per tutte le tabelle utf8_general_ci

    questo è quello classico, sarebbe unicode case insensitive

    c'è da notare inoltre che il charset predefinito di mysql nelle select è proprio utf8 (unicode), e quindi non è necessario fare il casting come fai te nella query

  5. #5
    Se non uso quella query ed uso quella "classica" senza il CONVERT, l'output è "Impossibile accedere ai dati" !!.
    le tabelle del mio DB sono latin1_swedish_ci.

    Come faccio. Non posso modificare tutte le query !

  6. #6
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    [supersaibal]Originariamente inviato da triple h
    Se non uso quella query ed uso quella "classica" senza il CONVERT, l'output è "Impossibile accedere ai dati" !!.
    le tabelle del mio DB sono latin1_swedish_ci.

    Come faccio. Non posso modificare tutte le query ! [/supersaibal]
    hai provato a leggere il mio post?

    cambia la collation della tabella in utf8_general_ci, probabilmente ti toccherà cambiare il collation anche di tutti i campi stringa

  7. #7
    Quindi il comando che devo usare è "ALTER TABLE nometabella DEFAULT CHARACTER SET utf8_general_ci" ?
    Dico bene?

  8. #8
    Il comando ALTER è errato. ho cambiato la collation dei campi della tabellain utf8_general_ci e come risultato non posso eseguire nessuna delle 2 query che avevo proposto nel primo messaggio!

  9. #9
    Utente di HTML.it L'avatar di kuarl
    Registrato dal
    Oct 2001
    Messaggi
    1,093
    ....

    te l'ho già detto e te lo ripeto, devi cambiare la collation dei singoli campi, non solo quello della tabella
    ALTER TABLE `nometabella` CHANGE `nomecampo` CHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci

    il character set è facoltativo, visto che è implicito nella collation. Io cmq lo metto ugualmente

  10. #10
    e metti la versione 2.6.2 di phpMyAdmin



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.