Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306

    Si salvano caratteri strani nel db

    Ciao a tutti ragazzi
    ieri ho trovato un form select con i vari tag option delle province italiane
    codice HTML:
    Città: <select name = "pv" >
    <option value="vuoto"></option><option value="AG">Agrigento</option>
    <option value="AL">Alessandria</option>
    <option value="AN">Ancona</option>
    <option value="AO">Aosta</option>
    <option value="AR">Arezzo</option>
    <option value="AP">Ascoli Piceno</option>
    <option value="AT">Asti</option>
    
    ...........
    e l'ho inserito nella mia pagina di immissione dati per la memorizzazione del campo select nel mio db.

    Cosa è successo?

    prima, quando avevo scritto di mio pugno (anzi dita) alcune province tanto per fare una prova, nel campo tabella relativa alla memorizzazione della sigla della provincia veniva ben salvata MI oppure BO, oppure NA.


    Ora invece con l'aver sostituito i miei tag option, con quelli di tutte le province che ho trovato, mi salva caratteri strani nella mia tabella. ESEMPIO: mi ritrovo
    PI viene memorizzata così â€PIâ€
    AG viene memorizzata così â€AGâ€

    cioè tutte con questa a e il simbolo dell'euro.
    Cosa posso fare?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Leggi il mio link in firma.

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Leggi il mio link in firma.

    Grazie mille Alhazred
    immaginavo che era una cosa del genere, però non sapevo come agire.
    Con questi linguaggi appena ti muovi, c'è un errore , un qualcosa che non va.



    Ho letto questo codice, e mi sono soffermato sui commenti, e soprattutto sulla frase
    "per chi ancora usa le istruzioni mysql_"

    codice:
    //per chi ancora usa le istruzioni mysql_
    mysql_set_charset("utf8");
    
    //per chi usa le istruzioni mysqli_
    //versione object oriented
    $mysqli->set_charset("utf8");
    
    //versione procedurale, $link è il link della connessione al database
    mysqli_set_charset($link, "utf8");
    
    //per chi usa PDO il charset può essere specificato nella stringa di connessione
    //a seconda della versione di MySQL però si possono avere dei problemi
    //un altro modo per specificare il charset è questo
    $dbh = new PDO("mysql:$connstr",  $user, $password);
    $dbh->exec("set names utf8"); 
    
    Io che ho imparato da poco ed uso questo codice del genere per collegarmi al db e fare operazioni

    Codice PHP:
    require_once('configurazione_credenziali_esterno.php');
    $link mysqli_connect(DB_HOSTDB_USERNDB_PSW) or die("Errore connessione: "mysqli_connect_error());
    $dbw mysqli_select_db($linkDB_PROVA) or die("Errore apertura database: " mysqli_error($link));
    $strsql "SELECT id_province,nome_province,sigla_province FROM province";
    $rs mysqli_query($link$strsql) or die("Errore query database: " mysqli_error($link));


      
    $province = array();   
     while ( 
    $riga mysqli_fetch_assoc($rs) ) //restituisce array associativo.    {        

    $sigla_prov=$riga['sigla_province'];  
    $nome_prov=$riga['nome_province'];      
     
    $province$sigla_prov ] =$nome_prov;    } 

    cosa è ? è un vecchio linguaggio? mi dovrei aggiornare ancora?
    Ultima modifica di Alfoxx; 24-09-2016 a 12:41

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Tu stai usando mysqli_ che è diverso da mysql_ (senza i finale).
    In realtà non si tratta di linguaggi diversi, ma sono i driver per il collegamento al database, in parole povere dei set di funzioni.
    mysql_ (senza i) è un driver deprecato dalla versione 5.5 di PHP ed abbandonato in PHP7 (non esiste più, se lo usassi ti direbbe che non trova la funzione che vuoi usare).
    Deprecato vuol dire: ok, lo puoi ancora usare, ma occhio che tra un po' non funzionerà più, quindi se stai scrivendo una nuova applicazione, cambia idea e usa un altro set di funzioni, se hai delle applicazioni già pubblicate, modificale usando funzioni non deprecate, altrimenti appena si aggiorna il server il sito non funzionerà più.

    La cosa migliore sarebbe usare PDO, ma al momento mysqli_ (con la i) ancora va bene.

    Con questi linguaggi appena ti muovi, c'è un errore , un qualcosa che non va.
    Questo accade quando si ha poca esperienza e si stanno ancora studiando le basi, come in tutti i campi.
    Ultima modifica di Alhazred; 24-09-2016 a 17:07

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Tu stai usando mysqli_ che è diverso da mysql_ (senza i finale).
    In realtà non si tratta di linguaggi diversi, ma sono i driver per il collegamento al database, in parole povere dei set di funzioni.
    mysql_ (senza i) è un driver deprecato dalla versione 5.5 di PHP ed abbandonato in PHP7 (non esiste più, se lo usassi ti direbbe che non trova la funzione che vuoi usare).
    Deprecato vuol dire: ok, lo puoi ancora usare, ma occhio che tra un po' non funzionerà più, quindi se stai scrivendo una nuova applicazione, cambia idea e usa un altro set di funzioni, se hai delle applicazioni già pubblicate, modificale usando funzioni non deprecate, altrimenti appena si aggiorna il server il sito non funzionerà più.

    La cosa migliore sarebbe usare PDO, ma al momento mysqli_ (con la i) ancora va bene.


    Questo accade quando si ha poca esperienza e si stanno ancora studiando le basi, come in tutti i campi.

    mi potresti dire perchè la cosa migliore è usare PDO?

    è un fatto di comandi? o di potenzialità diverse?
    Ultima modifica di Alfoxx; 24-09-2016 a 17:43

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Per esempio con PDO puoi gestire 12 tipi diversi di database, con mysqli solo MySQL, quindi se impari ad usare PDO non dovrai imparare altre cose se invece di un db MySQL dovessi lavorare su un db MS SQL o Oracle o SQLite o PostgreSQL...

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    Ok grazie
    allora cmq c'è molto che devo vedere...speriamo

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.