Ja selvfølgelig kan det lade sig gøre. MySQL API'et er faktisk bare en implementation af MySQL's netværks protokol. Underlæggende er der bare en almindelig socket.
Vis os hvad du har gjort og hvilken fejl du får, så er det lidt nemmere.
Nedenstående kode:
#include <stdio.h>
#include <string.h>
#include <mysql.h>
int main (int argc, char ** argv)
{
MYSQL mysql;
MYSQL_RES * res = NULL;
MYSQL_FIELD * fields;
MYSQL_ROW row;
int num_fields, i;
char sql[] = "SELECT * FROM mytable";
if (mysql_init(&mysql) == NULL) {
fprintf(stderr, "mysql_init: %s\\n", mysql_error(&mysql));
exit(-1);
}
if (mysql_real_connect(&mysql, "localhost", "robert", "secretpassword", "test", 3306, NULL, 0) == NULL) {
fprintf(stderr, "mysql_real_connect: %s\\n", mysql_error(&mysql));
mysql_close(&mysql);
exit(-1);
}
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) {
num_fields = mysql_num_fields(res);
fields = mysql_fetch_fields(res);
while ((row = mysql_fetch_row(res))) {
for (i = 0; i < num_fields; i++) {
printf("%s=%s ", fields[ i].name, row[ i] ? row[ i] : "NULL");
}
printf("\\n");
}
}
mysql_free_result(res);
res = NULL;
mysql_close(&mysql);
return 0;
}
...giver flgende output på min test database:
robert@robert:~/code/test$ ./test
id=1 sometext=Hello World
id=2 sometext=Goodbye World
[Redigeret d. 25/10-05 14:27:32 af Robert Larsen]