Dev-c++ mysql

Tags:    c++

<< < 12 > >>
Hej

Kan det lade sig gøre at forbinde til en mysql server gennem Dev-c++ i c++. For jeg ville meget gerne til at lave nogle programmer hvor jeg bruger mysql, nu har jeg i lang tid forsøgt at forbinde til mysql. Jeg har downloadet en masse forskellige c++ api så jeg skulle kunne gøre det men ingen af dem virkede. Så så jeg noget en havde skrevet på en side hvor der stod at man ikke kunne gøre det igen dev-c++. Så nu vil jeg gerne vide om det kan lade sig gøre, og hvis det kan hvordan man gør.

Mvh.

Søren



14 svar postet i denne tråd vises herunder
0 indlæg har modtaget i alt 0 karma
Sorter efter stemmer Sorter efter dato
Det lyder som om du glemmer at compile med -lmysql
Altså at du fortæller compileren at den skal linke mod libmysql.dll

Hvis du ikke har gjort det, kan jeg lige give dig en guide.

Hey

jeg har bare lagt libmySQL.dll i den mappe, hvor mit program er, men kan du fortælle en måde jeg kan gøre det på sådan at den ikke skal være i mappen. Vil jeg være meget glad

Mvh.

Søren



Det lyder som om du glemmer at compile med -lmysql
Altså at du fortæller compileren at den skal linke mod libmysql.dll

Hvis du ikke har gjort det, kan jeg lige give dig en guide.

Hey

jeg har bare lagt libmySQL.dll i den mappe, hvor mit program er, men kan du fortælle en måde jeg kan gøre det på sådan at den ikke skal være i mappen. Vil jeg være meget glad

Mvh.

Søren

Læg libmySQL.dll i c:\\winnt\\lib32 (er det ikke dér Windows lægger dll'er?)



Det lyder som om du glemmer at compile med -lmysql
Altså at du fortæller compileren at den skal linke mod libmysql.dll

Hvis du ikke har gjort det, kan jeg lige give dig en guide.

Hey

jeg har bare lagt libmySQL.dll i den mappe, hvor mit program er, men kan du fortælle en måde jeg kan gøre det på sådan at den ikke skal være i mappen. Vil jeg være meget glad

Mvh.

Søren

Læg libmySQL.dll i c:\\winnt\\lib32 (er det ikke dér Windows lægger dll'er?)

Ok

Har du også et svar på mit andet spørgsmål, Hvordan jeg kan checke om de dataer jeg henter er ligmed noget. Jeg har 2 koloner i min database, en kaldet brugernavn og en kaldet kodeord. Hvordan kan jeg hente kodeord ud af databasen hvor bruger navnet er ligmed noget bestem fks. test også hente kodeordet for det brugernavn og se om det er ligmed noget? (Ja jeg prøver at lave et login:D) Kan du hjælpe mig med det?

Mvh.

Søren



Du kan kigge lidt på det her:
[/pre]
#include <stdio.h>
#include <string.h>
#include <mysql.h>

int main (int argc, char ** argv)
{
MYSQL mysql;
MYSQL_RES * res = NULL;
MYSQL_ROW row;
int i;
char sql[1024];

if (argc != 3) {
printf("Usage: %s username password\\n", argv[0]);
return 0;
}

snprintf(sql, sizeof(sql), "SELECT COUNT(*) FROM Users WHERE username='%s' AND password='%s'", argv[1], argv[2]);

if (mysql_init(&mysql) == NULL) {
fprintf(stderr, "mysql_init: %s\\n", mysql_error(&mysql));
exit(-1);
}

if (mysql_real_connect(&mysql, "localhost", "robert", "keumgang", "test", 3306, NULL, 0) == NULL) {
fprintf(stderr, "mysql_real_connect: %s\\n", mysql_error(&mysql));
mysql_close(&mysql);
exit(-1);
}

printf("Executing: %s\\n", sql);
if (mysql_real_query(&mysql, sql, strlen(sql)) != 0) {
fprintf(stderr, "mysql_real_query: %s\\n", mysql_error(&mysql));
mysql_close(&mysql);
exit(-1);
}

res = mysql_store_result(&mysql);

if (res) {
if ((row = mysql_fetch_row(res))) {
if (strcmp(row[0], "1") == 0) {
printf("User is authenticated\\n");
} else {
printf("BAD user\\n");
}
}
}

mysql_free_result(res);
res = NULL;

mysql_close(&mysql);
return 0;
}
[/pre]

Jeg beder databasen om at tælle antallet af brugere som har et bestemt brugernavn OG password. Hvis antallet er "1" så er brugeren ok...ellers ikke.
Fold kodeboks ind/udKode 


Dette er kun et eksempel og et meget dårligt et af slagsen for det tillader en angriber at benytte sig af SQL injection. F.eks.:

Fold kodeboks ind/udKode 

For at undgå dette skal man escape al input. Dvs. erstate tegnene:
"
'
\
med
\\"
\\'
\\\
Måske også andre.



<< < 12 > >>
t