24. april 2003 - 14:01
Der er
9 kommentarer og 1 løsning
mysql i C
Hey, mig igen :P har lidt problemer med min mysql funktion.. her er hvad jeg har.. char* do_sql(char buffer[4000]) { MYSQL* mysql_handle = mysql_init(NULL); MYSQL_RES *result; MYSQL_ROW row; int num_fields; int i; char* output; if(mysql_handle == NULL) { printf("MySQL error: %s", mysql_error(mysql_handle)); exit(1); } if(!mysql_real_connect(mysql_handle, "localhost", "root", "noget", "enDatabase", 0, NULL, 0)) { printf("MySQL error: %s", mysql_error(mysql_handle)); exit(1); } mysql_query(mysql_handle, buffer); result = mysql_store_result(mysql_handle); num_fields = mysql_num_fields(result); row = mysql_fetch_row(result); mysql_free_result(result); mysql_close(mysql_handle); return row; } men får en compiler error.. -bash-2.05b$ cc -o server -lm -lz server.c /usr/local/lib/mysql/libmysqlclient.a server.c: In function `do_sql': server.c:214: warning: return from incompatible pointer type -bash-2.05b$ den skulle returnere et array, som man så kan bruge i sin main funktion.. f.eks. int main(void) { char* row = do_sql("SELECT * FROM database WHERE noget"); printf("%s\n", row[nick]); } nogen idéer? :)
Annonceindlæg fra Salesforce
24. april 2003 - 14:08
#1
Prøv med: MYSQL_ROW do_sql(char buffer[4000])
24. april 2003 - 14:09
#2
Det er jo hvad du faktisk returnerer. main skal nok også lavet lidt som så.
24. april 2003 - 14:14
#3
hvad skal så laves om ved main? har fået selve funktionen til at virke
24. april 2003 - 14:17
#4
Det skal vel være: int main(void) { MYSQL_ROW row = do_sql("SELECT * FROM database WHERE noget"); printf("%s\n", row.???); } hvor du er nødt til at kigg elidt på MYSQL_ROW for at se hvad ??? skal være.
24. april 2003 - 14:21
#5
Jeg kiggede lige lidt i mysql.h. Prøv med: int main(void) { MYSQL_ROW row = do_sql("SELECT * FROM database WHERE noget"); printf("%s\n", row[n]); } hvor n=0 hvis første felt, n=1 hvsi andet felt etc..
24. april 2003 - 15:27
#6
purde dette så ikke virke? do_sql("UPDATE users SET pass='fisk' WHERE id='1'"); ? der sker ikk en skid
24. april 2003 - 15:30
#7
Er id et tekst-felt eller et tal-felt ? Hvis det er et tal-felt, så skal der ikke '' omkring 1.
24. april 2003 - 15:52
#8
hjælper ikk noget..
24. april 2003 - 17:43
#9
Jeg har kigget lidt på MySQL docs. Jeg tror ikke at do_sql kan udføre en UPDATE, fordi den bruger mysql_query og det her er slet ikke en query. Jeg tror du skal over i mysql_execute og prepared statement.
24. april 2003 - 17:45
#10
Kurser inden for grundlæggende programmering