|
| [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
| |
|
|