Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340

    problema mysql_real_escape_string non utilizzabile....

    Ciao, ho un problema con uno script, leggendo un database importato in mysql con localita' italiane mi crea dei problemi con quelle codificate con l'apice...
    se vado a leggere il database incontro il problema di apertura se trovo una localita' codificata cosi
    ad esempio scrivo Perugia e vado a cercare le localita' della provincia, ho un errore quando legge il record "Giano dell'umbria" non posso o non so come filtrare queste informazioni eliminando l'apice.
    Potrei fare una conversione di massa di tutto il database, ma e' mastodontico!
    per accorgemi dove si blocca ho inserito degli echo per visualizzarne i punti.

    Lo script e' questo:
    Codice PHP:
     echo ' cerco dalla localita '.$loc.'  in provincia di :'.$prov.' <br/>'
    $sql =$data->query("SELECT * from localita WHERE localita ='$loc' AND prov='$prov'   ") ; 
    // qui in teoria dovrei filtrare localita e sostituire gli apici se esistenti 

    if (mysql_num_rows($sql)<1)     { echo ' nessuna trovata'; }     
    while (
    $row=mysql_fetch_array($sql))      {
          echo 
    'localita :'.$row['localita'].' - - loc '.$loc.'<br/>';
          
    $contato =1;     
    }
    $data->disconnetti();
    return(
    $contato); 
    Potete dirmi come risolvere?
    grazie.

  2. #2
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    problema mysql_real_escape_string non utilizzabile....
    Ad occhio stai utilizzando contemporaneamente, come api, mysql e mysqli. Decidi quale utilizzare.
    Il "problema" di mysql_real_escape_string è che necessita di una connessione attiva per poter funzionare. Se la connessione la fai solo con mysqli, mysql_real_escape_string non ha idea del set di caratteri utilizzando dalla connessione, e ti restituisce false. La documentazione la trovi qui: http://php.net/manual/en/function.my...ape-string.php

    Potete dirmi come risolvere?
    http://stackoverflow.com/questions/6...jection-in-php

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    Ciao Kurt, grazie per la risposta.
    la connessione attiva al database e' di fatto data dalla la riga
    $data->connetti() che mi connette al db dalla classe connetti() che non ho scritto nell'esempio.

    $sql
    =$data->query("SELECT * from localita WHERE localita ='$loc' AND prov='$prov' ") ;

    non capisco perche' mi dici che uso mysqli ed anche mysql, ma aldila' di questo non saprei come filtrare nella query i
    dati della tabella sul campo localita'.
    Puoi essere piu' chiaro?
    grazie.





  4. #4
    Utente di HTML.it L'avatar di .Kurt
    Registrato dal
    Jul 2007
    Messaggi
    654
    My bad, pensavo che $data fosse un'istanza di mysqli. Ha poco senso incapsulare mysql_connect, mysql_query e poco altro in una classe, d'istinto ho pensato fosse altro.
    ma aldila' di questo non saprei come filtrare nella query i dati della tabella sul campo localita'.
    Una è fare l'escape con mysql_real_escape_string, l'altro è usare prepared statements (l'estensione mysql in questo caso non lo permette). Che problemi hai a fare l'escape? Perché dici che mysql_real_escape_string non è utilizzabile?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2010
    Messaggi
    340
    So Sorry, sono un pirla!! ho sbagliato un ragionamento banale, la stanchezza di una nottata in bianco per lo sviluppo si paga!!
    Non devo filtrare il dato del database ma la stringa in arrivo.
    Risolto, grazie Kurt!! meglio lasciare per ora e riposare un po.....

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 © 2024 vBulletin Solutions, Inc. All rights reserved.