Betydningen av koblingen identifikator i mysql_real_escape_string ()

stemmer
3

Derfor er det nødvendig å ha en kobling identifikator som en innmatning ved bruk av mysql_real_escape_string (). Jeg vet at funksjonen bør brukes med MySQL spørringer, men funksjonen er egentlig bare en streng manipulasjon.

Publisert på 29/12/2009 klokken 23:02
kilden bruker
På andre språk...                            


3 svar

stemmer
6

Fra PHP manualen :

Rømming spesialtegn i unescaped_string, tar hensyn til dagens tegnsettet for tilkoblingen, slik at det er trygt å plassere den i en mysql_query (). Hvis binære data skal innføres, må denne funksjon benyttes.

og:

Dersom koblingen identifikator ikke er spesifisert, er det siste leddet åpnes ved mysql_connect () lagt til grunn. Hvis ingen slik kobling blir funnet, vil den prøve å lage en som om mysql_connect () ble kalt uten argumenter. Dersom det ikke blir funnet, eller etablert, blir et E_WARNING nivå feil generert.

En forbindelse er nødvendig for å bestemme den tegnsett.

Svarte 29/12/2009 kl. 23:04
kilden bruker

stemmer
1

mysql_real_escape_string:

Rømming spesialtegn i unescaped_string, tar hensyn til dagens tegnsettet for tilkoblingen , slik at det er trygt å plassere den i en mysql_query ().

Svarte 29/12/2009 kl. 23:05
kilden bruker

stemmer
3

Ha en lese av http://ilia.ws/archives/103-mysql_real_escape_string-versus-Prepared-Statements.html

For eksempel, hvis GBK tegnsett blir brukt, det vil ikke konvertere en ugyldig multibyte sekvens 0xbf27 (¿ ') inn 0xbf5c27 (¿\' eller i GBK ett gyldig flerbytetegn etterfulgt av et enkelt sitat). For å bestemme riktig utskilling metodikk mysql_real_escape_string () behov for å kjenne tegnsett, som vanligvis hentet fra databasen forbindelse markøren.

Kanskje som en konsekvens av denne artikkelen, men klart etter at den funksjonen mysql_set_charset () har blitt lagt til mysql forlengelse. Tegnsettet er en egenskap ved mysql forbindelse (kilde).
Hvis du har flere tilkoblinger du virkelig bør sende dem til mysql_real_escape_string () (og alltid bruke mysql_set_charset () i stedet for settnavnene).
Hvis du ikke passere forbindelse ressursen funksjonen vil bruke den siste forbindelsen etablert av skriptet. Dersom tegnsett av de to (eller flere ruter) skiller produktet av real_escape_string () kan bli feiltolket av serveren (forventer en annen koding, og derfor forskjellige rømmer reglene).
Og siden det ikke skader å gjøre det selv om du bare har én tilkobling (kan du si med absolutt sikkerhet at dette vil være så fram til slutten av tid?) Bare passere det alltid.

Svarte 29/12/2009 kl. 23:31
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more