siccome faccio uso spesso di parole apostrofate normalmente prima di salvare
sul db il valore di un campo eseguo questo codice php
if(get_magic_quotes_gpc()
{
$var=stripslashes($var_con_apostrofo)
;}
$var_con_slash_davanti_ad_apostrofo=mysql_real_escape_string($var);
mi sembrava che andasse tutto bene ma sul db lo slash prima dell'apostrofo
non c'è
Sbaglio qualche cosa?
Grazie
PS
la tabella usa UTF-8
> mi sembrava che andasse tutto bene ma sul db lo slash prima
> dell'apostrofo non c'è
>
> Sbaglio qualche cosa?
No, e` normale che non vedi lo slash quando estrai i dati. Lo slash serve
solo a fare l'escape dell'apostrofo, che e` un carattere speciale di SQL
e non del database.
Bye.
Si ma io non lo vedo neanche con PHPMYADMIN
scorrendo la tabella a mano
> "Alessandro Pellizzari" >
>> No, e` normale che non vedi lo slash quando estrai i dati. Lo slash
>> serve solo a fare l'escape dell'apostrofo, che e` un carattere speciale
>> di SQL e non del database.
> Si ma io non lo vedo neanche con PHPMYADMIN
> scorrendo la tabella a mano
Anche phpmyadmin estrae i dati.
Nel database il backslash non viene salvato. Non c'e`.
Ha esattamente la stessa funzione che in PHP.
Quando scrivi
$a = 'Arriva l\'aereo';
non ti aspetti che facendo print $a ti scriva
Arriva l\'aereo
ma
Arriva l'aereo
Perche` appunto lo slash non e` dentro la stringa, ma serve solo a non
fare confusione al parser del linguaggio.
Stessa cosa per SQL.
Bye.
> mi sembrava che andasse tutto bene ma sul db lo slash prima dell'apostrofo
> non c'è
Non ci deve essere nel db
La chiamata a mysql_real_escape_string() serve proprio ad "escapizzare" i
caratteri utilizzati da mysql come delimitatore.
Ciao,
luigi
--
/
+--[Luigi Rosa]--
\
The primary function of the design engineer is to make things
difficult for the fabricator and impossible for the serviceman.