Avatar billede Lucky_Mik Nybegynder
14. juli 2009 - 07:37 Der er 4 kommentarer og
2 løsninger

PHP syntaks med $query

//Denne virker
$query = "SELECT id FROM user_info WHERE username = '" . $_POST['username'] . "';";

//Denne virker ikke
$query = SELECT id FROM user_info WHERE username = $_POST['username'];

I den øverste ser det ud til der kommer 2 stk " i slutningen af SELECT-sætningen, hvorfor virker det ?

Og hvorfor virker den nederste ikke ?
Avatar billede showsource Seniormester
14. juli 2009 - 07:55 #1
Når du bruger ' i php, SKAL du "hoppe ud/ind" af php for at kunne bruge variablen. ( så vidt jeg ved da, bruger altid selv " )

$query = "SELECT id FROM user_info WHERE username = '".$_POST["username"]."'";


virker formodentlig også, men bruger jeg aldrig selv:
$query = "SELECT id FROM user_info WHERE username = '$_POST[username]'";

Helt "klar tale" om hvorfor og hvad kan jeg ikke lige sige dig !
Men ser af og til spm. hvor problemet ligger i at der bruges ' og ikke "
Avatar billede gbjensen65 Nybegynder
14. juli 2009 - 07:56 #2
Fordi en streng i PHP enten skal være indrammet med "" eller ''

SQL kommandoen bør se således ud:
$query = "SELECT id FROM user_info WHERE username = '".$_POST['username']."'";

Så kan du hente et resultat ind med:

$result1 = mysql_query($query);
Avatar billede mrgumble Nybegynder
14. juli 2009 - 08:37 #3
Som gbjensen skriver, skal strengen være indrammet med gåseøjne eller apostrof.
Med din er det også muligt at gøre det på denne måde:

$query = "SELECT id FROM user_info WHERE username = '{$_POST['username']}'";

Bemærk at sql-queries i php ikke behøver at blive afsluttet med semikolon, da det bl.a. kan virke forvirrende med to semikolons.

Derudover vil jeg anbefale dig at kigge på fænomenet "SQL-Injections". Det har været behandlet mange gange her på Eksperten.dk.
I bund og grund vil jeg kunne få f.eks. admin-kontrol ved at angive usernameet som:
admin' #
(måske ikke helt relevant på dit eksempel).
Men se her på følgende indlæg:
- http://www.eksperten.dk/spm/732601
- http://www.eksperten.dk/spm/406000
Og så google det mht. php. :)
Avatar billede Lucky_Mik Nybegynder
14. juli 2009 - 08:40 #4
Tak for hjælpen til jer begge, de hjalp mig videre :-)
Avatar billede Lucky_Mik Nybegynder
14. juli 2009 - 08:41 #5
hov, showsource, skriv et svar, så får du også points :-) Og tak til dig også :-)
Avatar billede showsource Seniormester
14. juli 2009 - 12:29 #6
mrgumble ->
"Bemærk at sql-queries i php ikke behøver at blive afsluttet med semikolon, da det bl.a. kan virke forvirrende med to semikolons."

En streng i ovenstående ex. skal da netop indrammes af to ' ellers får man da fejl ?

Og point betyder nu ikke noget...
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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