Avatar billede nomak Nybegynder
25. april 2003 - 09:52 Der er 12 kommentarer og
2 løsninger

variabel i variabel

Er det muligt at bruge en variabel i en funktios anden variabel?

Har funktionen: fetch_sql(char buffer[300]);

nu vil jeg så bruger den i min main funktion, således:

int main(void) {
char nick[32];
nick = "nomak";
fetch_sql("SELECT * FROM users WHERE nick='VARIABLEN NICK'");
return 1;
}

kan dette lade sig gøre?
Avatar billede medions Nybegynder
25. april 2003 - 09:59 #1
int main(void) {
char nick[32];
nick = "nomak";
fetch_sql("SELECT * FROM users WHERE nick='" + nick + "'");
return 1;
}

//>Rune
Avatar billede arne_v Ekspert
25. april 2003 - 10:02 #2
char cmd[80];
char nick[32];
strcpy(nick,"nomak");
sprintf(cmd,"SELECT * FROM users WHERE nick='%s'",nick);
fetch_sql(cmd);
Avatar billede medions Nybegynder
25. april 2003 - 10:04 #3
arne_v> Hvad er det %s gør?

//>Rune
Avatar billede arne_v Ekspert
25. april 2003 - 10:08 #4
%s er formaterings-direktivet for C string (nul termineret char array)
Avatar billede nomak Nybegynder
25. april 2003 - 10:12 #5
sprintf(cmd, "SELECT * FROM sessions WHERE key='%s';", key);

burde den forespørgsel ikke virke?
Avatar billede arne_v Ekspert
25. april 2003 - 10:13 #6
Jo.
Avatar billede nomak Nybegynder
25. april 2003 - 10:14 #7
You have an error in your SQL syntax near 'key='1e61f44008fa3ce91371fe666380e8a8'' at line 1
Avatar billede arne_v Ekspert
25. april 2003 - 10:15 #8
Eller nej.

Jeg formoder at fetch_sql ender med at kalde mysql_query.

Ifølge:
  http://www.mysql.com/doc/en/mysql_query.html
skal man ikke angive semikolon.
Avatar billede erikjacobsen Ekspert
25. april 2003 - 10:15 #9
Key er vist et reserveret ord
Avatar billede nomak Nybegynder
25. april 2003 - 10:16 #10
oooh! i c.. 2 sekunder
Avatar billede arne_v Ekspert
25. april 2003 - 10:19 #11
Hvis key er et reserveret ord i MySQL, så er der nok forklaringen.

(jeg synes dog bare at du skulle have haft fejl, da du oprettede
tabellen så - ikke når du forespørger)
Avatar billede erikjacobsen Ekspert
25. april 2003 - 10:23 #12
Nej, det behøv's han ikke at få at vide. Man kan bare skrive

  `key`

som de fleste værktøjer gør for brugeren :)
Avatar billede arne_v Ekspert
25. april 2003 - 10:32 #13
Hvis det er tilfældet så er løsningen jo:

sprintf(cmd, "SELECT * FROM sessions WHERE `key`='%s'", key);

(og så synes jeg iøvrigt absolut ikke at man skal omgåes
reserverede or dpå den måde)
Avatar billede nomak Nybegynder
25. april 2003 - 10:40 #14
takker til alle jer.. er kommet videre :)
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
Kurser inden for grundlæggende programmering

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