Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    55

    Salvataggio caratteri speciali in query su mysql

    Salve, utilizzo un database mysql su un serverweb, e per motivi di funzioni di ricerca ho la necessità di salvare parole senza che vengano codificate, ad esempio se inserisco "Müller" non deve scrivermi nè "Müller" nè "M& uuml;ller"!
    Il campo è codificato in "utf8_general_ci". se provo a fare l'inserimento direttamente su phpmyadmin è tutto ok, se inserisco da query invece non funziona come voglio.

    Suggerimenti?

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,655
    Ciao, se provi a fare insert o select utilizzando ut8_encode() o utf8_decode() ? magari risolvi il problema.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    55
    in tutti i casi da phpmysql ritrovo "Müller"

  4. #4
    La pagina php che codifica ha?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    55
    la pagina dove inserisco i dati è in UTF-8

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    55
    osservando meglio gia nella query di insert/update il dato è Müller !

  7. #7
    Postaci un po' di codice va

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    55
    Non faccio niente di che, ecco:
    codice:
    $name_save = $_POST['name'];
    //...acquisizione degli altri campi ...//
    
    $sql = "UPDATE table_ele SET
                                   descrizione = '".$name_save."', 
                                   img_url = '$url_orig',
                                   img_thumb_url = '$url_thumb',
                                   exc_stile = '$style_save',
                                   exc_color = '$color_save',
                                   exc_alc = '$alc_save',
                                   exc_origin = '".$country_save."', 
                                   exc_birrificio = '$brewery_save',
                                   exc_cl = '$content_txt_save' 
                WHERE cod_ele = ".$_POST['cod_ele'];
    Comunque mi correggo riguardo quello che ho scritto prima, effettivamente la query diventa:

    UPDATE table_ele SET descrizione = 'Müller ', ecc.

    ma nel db ritrovo sempre "Müller"

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    51
    I dati sul DB salvali come entità HTML del tipo: "ò" --> "ò"
    Così di solito si risolvono i problemi, poi fai i vari cambi con la funzione specialchars e l'altra che non mi ricordo come si chiama di funzione D:

  10. #10
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    Originariamente inviato da Stranges
    Non faccio niente di che, ecco:
    codice:
    $name_save = $_POST['name'];
    //...acquisizione degli altri campi ...//
    
    $sql = "UPDATE table_ele SET
                                   descrizione = '".$name_save."', 
                                   img_url = '$url_orig',
                                   img_thumb_url = '$url_thumb',
                                   exc_stile = '$style_save',
                                   exc_color = '$color_save',
                                   exc_alc = '$alc_save',
                                   exc_origin = '".$country_save."', 
                                   exc_birrificio = '$brewery_save',
                                   exc_cl = '$content_txt_save' 
                WHERE cod_ele = ".$_POST['cod_ele'];
    Comunque mi correggo riguardo quello che ho scritto prima, effettivamente la query diventa:

    UPDATE table_ele SET descrizione = 'Müller ', ecc.

    ma nel db ritrovo sempre "Müller"
    questo problema io lo risolvo insernedo questo dopo la conenssione al db

    Codice PHP:
    mysql_query("SET NAMES utf8",$db); 
    e quando c'è un invio dati con $_POST facendo l'escape così

    Codice PHP:
    $nome stripslashes(htmlentities($nomeENT_QUOTES'UTF-8')); 
    la prima funzione per il problema dell'aggiunta degli slash prima degli apostrofi e la seconda per la codifica dei caratteri...

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.