Quote Originariamente inviata da harry80 Visualizza il messaggio
Grazie, avevo cercato ma mi sfuggiva la questione "connessione" avendo per la prima vola cambiato metodo, ho risolto con $db->exec("set names utf8");.

Una domanda, quando scrivo "c'era una volta", nel DB mi scrive "c\'era una volta" con il backslash, è giusto perché poi quando stampo userò stripslashes, oppure esiste un metodo per scrivere direttamente nel DB senza il backslash?
problema vecchio e noto, ci sono varie soluzioni al riguardo, poi ovviamente dipende dalle esigenze e da li si procede, una soluzione semplice e funzionale potrebbe essere la seguente, ti scrivi una funzione che trasforma i caratteri speciali in codici ascii e da li poi puoi caricarli senza problemi nel db...

Nota che, nel caso devi fare una ricerca nel db, ti conviene convertire prima la parola da ricercare e poi fai la ricerca, in questo modo anche se un carattere è stato convertito, ci sarà la perfetta coincidenza e ti verrà restituito il record...

Codice PHP:

     
public function real_escape($key=null){
         
$key_b=  str_replace("'""'"$key);
         
$key_c=  str_replace('"',""",$key_b);
         return 
$key_c;
     } 
ad esempio con questo codice io converto tutti gli apostrofi e le virgolette nel relativo codice asci, ovviamente se ti serveono altri caratteri, devi solo aggiungerli....