Condividi
Come usare mysqli_real_escape_string()?
Quando uso la funzione mysqli_real_escape_string($link, '"corr"e"nte"')
ottengo in output la stringa con il backslash sui doppi apici, ossia \"corr\"e\"nte\" che è il comportamento corretto per questa funzione, solo che nel mio database locale me lo salva senza i backslash, mentre in quello remosto con i backslash, come faccio ad uniformare il comportamento al primo caso? Grazie.
In Corso
1
MySql
08-04-2019
2 Risposte
2818 Visite
+1
Risposte ( 2 approvate )
Sicuramente il file php.ini sul tuo server remoto ha
magic_quotes
abilitato. Puoi verificarlo eseguendo la semplice istruzione:Disabilita
magic_quotes
sul server per ottenere un comportamento a livello globale, oppure usa di volta in volta le funzioni di abilitazione e disabilitazione delle sequenze di escape (quindi anche su apici e virgolette) all'occorrenza come lamysqli_real_escape_string
o laaddslashes
e l'inversastripslashes
.Penso che una soluzione più semplice sia settare a runtime il file php.ini con magic quotes a zero 0 (falso, disabilitato) nel tuo script, basta scrivere:
è bene precisare che la magic_quotes_gpc è una direttiva separata che si applica solo agli array globali GET / POST / COOKIE.
La funzione ini_set() può essere utilizzata per modificare temporaneamente le impostazioni del file php.ini (la durata dello script). Questo assicurerà di ottenere lo stesso comportamento su tutti i server, i parametri sono il nome della direttiva che si desidera impostare e il nuovo valore da assegnargli, entrambi sotto forma di stringhe (anche se il valore è numerico).