Avatar billede krummel Juniormester
08. august 2006 - 00:57 Der er 4 kommentarer og
1 løsning

mysql WHERE (php)

Hvad gør jeg galt her. Bruger mysql og php. Jeg har en tabel med kolonnen Game (varchar)

$sql = mysql_query("select * from TABEL WHERE Game=$_GET[game]" , $db);

Den trækker intet ud af db selvom jeg ved $_GET[game]" ER lig Game. De indeholder begge teksten "pol". Det har nok noget med '' "" omkring $_GET?
Avatar billede webudvikleren Nybegynder
08. august 2006 - 01:06 #1
$sql = mysql_query("SELECT * FROM TABEL WHERE Game='" . $_GET['game'] . "'");

Så siger den
SELECT * FROM TABEL WHERE Game = 'Game'

Hvis $_GET[game] er game.
Avatar billede krummel Juniormester
08. august 2006 - 01:17 #2
webudvikleren:

Hvorfor er det så besværligt når det er tekst? Hvis det var tal og ikke tekst vi snakkede om, så ville Game = $_GET[game] være nok

Eller misforstår vi hinanden?
$_GET[game] er lig med teksten "pol"
Kolonnen Game har en celle med teksten "pol"
De skal sætte lig med hinanden
Avatar billede krummel Juniormester
08. august 2006 - 01:39 #3
Det virker dog fint, så giv et svar.
Avatar billede webudvikleren Nybegynder
08. august 2006 - 01:54 #4
Du kan også bare:
$sql = mysql_query("SELECT * FROM TABEL WHERE Game='$_GET[game]'");

Men vil stadig ikke kalde det besværligt.

Det fordi hvis du har feltet "Game" som varchar, så skal du huske " og "

Hvis det derimod er int så kan du undvære " og "
Avatar billede Slettet bruger
15. august 2006 - 10:17 #5
Grunden til at der skal gnyffer udenom tekst men ikke tal er, at tekst kan indeholde tegn, der har betydning for SQL.

Forestil dig hvis $_GET['game'] indeholdt "pol " som ikke er lige med "pol". Uden gnyfferne kan SQL ikke se forskel på de to strenge.

Derudover er der sikkerhedsproblematikken med SQL-injektion.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester