/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MySQL] casesensitive sammenligning
Fra : Leonard


Dato : 28-08-05 17:06

denne:

SELECT brugerid,bruger FROM bruger WHERE bruger='".$_POST['bruger']."'
AND kodeord='".$_POST['kodeord']."' LIMIT 1

er ligeglad med om der bruges store eller små bogstaver.

test = TEST giver det samme som test = test

Hvorfor det og hvordan får jeg den til at tjekke på case?

--
med venlig hilsen
Leonard - http://leonard.dk/

Er du skiftet til Firefox? www.mozilla.org

 
 
Kim Schulz (28-08-2005)
Kommentar
Fra : Kim Schulz


Dato : 28-08-05 17:10

On Sun, 28 Aug 2005 18:06:18 +0200
Leonard <usenet@leonard.dk> wrote:

> denne:
>
> SELECT brugerid,bruger FROM bruger WHERE bruger='".$_POST['bruger']."'
> AND kodeord='".$_POST['kodeord']."' LIMIT 1
>
> er ligeglad med om der bruges store eller små bogstaver.
>
> test = TEST giver det samme som test = test
>
> Hvorfor det og hvordan får jeg den til at tjekke på case?
>

Der er 2 muligheder som begge bygger på samme ide.

1) benyt strtoupper() fra php til at gøre begge ord helt i uppercase
inden de sammenlignes.
2) benyt UPPER() fra mysql til at gøre det samme.

f.eks.
SELECT brugerid,bruger FROM bruger WHERE
bruger='UPPER(".$_POST['bruger'].")' AND
kodeord='UPPER(".$_POST['kodeord'].")' LIMIT 1

og HUSK at når de gemmes i databasen første gang så skal de
selvfølgelig også gemmes som uppercase.

Leonard (28-08-2005)
Kommentar
Fra : Leonard


Dato : 28-08-05 18:23

Kim Schulz <kim@schulz.dk> wrote:

>Der er 2 muligheder som begge bygger på samme ide.

Tak for svaret, men du har misforstået mit problem.

Jeg vil gerne have at der er forskel på om det er med store eller små
bogstaver, jeg ønsker ikke at få positive resultater ud af test = TeSt

--
med venlig hilsen
Leonard - http://leonard.dk/

Er du skiftet til Firefox? www.mozilla.org

Kim Schulz (28-08-2005)
Kommentar
Fra : Kim Schulz


Dato : 28-08-05 17:13

On Sun, 28 Aug 2005 18:10:27 +0200
Kim Schulz <kim@schulz.dk> wrote:

> On Sun, 28 Aug 2005 18:06:18 +0200
> Leonard <usenet@leonard.dk> wrote:
>
> > denne:
> >
> > SELECT brugerid,bruger FROM bruger WHERE
> > bruger='".$_POST['bruger']."' AND kodeord='".$_POST['kodeord']."'
> > LIMIT 1
> >
> > er ligeglad med om der bruges store eller små bogstaver.
> >
> > test = TEST giver det samme som test = test
> >
> > Hvorfor det og hvordan får jeg den til at tjekke på case?
> >
>
> Der er 2 muligheder som begge bygger på samme ide.
>
> 1) benyt strtoupper() fra php til at gøre begge ord helt i uppercase
> inden de sammenlignes.
> 2) benyt UPPER() fra mysql til at gøre det samme.
>
> f.eks.
> SELECT brugerid,bruger FROM bruger WHERE
> bruger='UPPER(".$_POST['bruger'].")' AND
> kodeord='UPPER(".$_POST['kodeord'].")' LIMIT 1
>
> og HUSK at når de gemmes i databasen første gang så skal de
> selvfølgelig også gemmes som uppercase.


du kan selvfølgelig også smide UPPER() om bruger og kodeord og derved
helt slippe for hvordan det er gemt i databasen.

Peter Brodersen (28-08-2005)
Kommentar
Fra : Peter Brodersen


Dato : 28-08-05 18:39

On Sun, 28 Aug 2005 18:06:18 +0200, Leonard <usenet@leonard.dk> wrote:

>test = TEST giver det samme som test = test
>
>Hvorfor det og hvordan får jeg den til at tjekke på case?

Det skyldes at der er tale om tekstfelter. Det er en feature.

Du kan vælge at lave feltet til typen binary, eller du kan angive det
i din specifikke query, fx:

SELECT brugerid,bruger FROM bruger WHERE binary
bruger='".$_POST['bruger']."'
AND binary kodeord='".$_POST['kodeord']."' LIMIT 1

Det er nok mere hensigtsmæssigt at rette det i tabellen i første
omgang idet et index ikke udnyttes ellers.

--
- Peter Brodersen

Leonard (28-08-2005)
Kommentar
Fra : Leonard


Dato : 28-08-05 19:12

Peter Brodersen <usenet2005@ter.dk> wrote:

>Det skyldes at der er tale om tekstfelter. Det er en feature.
>
>Du kan vælge at lave feltet til typen binary, eller du kan angive det

>Det er nok mere hensigtsmæssigt at rette det i tabellen i første
>omgang idet et index ikke udnyttes ellers.

Det er jo nemt når man ved det
Tak.

--
med venlig hilsen
Leonard - http://leonard.dk/

Er du skiftet til Firefox? www.mozilla.org

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408921
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste