c og mysql
Vil gerne lege lidt med mysql via et c program og har derfor fundet følgende eksempel med det virker ikke helt.#include <stdio.h>
#include <stdlib.h>
#include "mysql.h"
int main()
{
/* connection */
MYSQL *handle;
/* query result */
MYSQL_RES *result;
/* række i query result */
MYSQL_ROW row;
/* antal felter i query result */
int nfields;
/* pointer til array med felt længder i række i query resuult */
int *l;
/* counter */
int i;
/*
* åben connection til:
* server = "localhost"
* username = "root"
* password = ""
* database = "Test"
* port = 0 (bliver opfattet som default 3306)
*/
handle= mysql_init(NULL);
if(handle == NULL)
{
printf("MySQL error: %s", mysql_error(handle));
exit(1);
}
if(!mysql_real_connect(handle, "localhost", "root", "", "Test", 0, NULL, 0))
{
printf("MySQL error: %s", mysql_error(handle));
exit(1);
}
/* udfør query */
mysql_query(handle, "SELECT * FROM t1");
result = mysql_store_result(handle);
/* print resultat af query */
nfields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result))) {
l = (int *)mysql_fetch_lengths(result);
for (i=0; i<nfields; i++) {
printf(" %.*s", row[i] ? l[i] : 4, row[i] ? row[i] : "NULL");
}
printf("\n");
}
/* luk query */
mysql_free_result(result);
/* luk connection */
mysql_close(handle);
return 0;
}
[root@localhost mysql]# gcc -Wall -c my.c -I/usr/include/mysql
[root@localhost mysql]# ls
my.c* my.o
[root@localhost mysql]# gcc -o my my.o -L/usr/lib/mysql -lm - lmysqlclient
gcc: lmysqlclient: No such file or directory
gcc: -E required when input is from standard input
[root@localhost mysql]# gcc -o my my.o -L/usr/lib/mysql -lm -lmysqlclient
/usr/lib/mysql/libmysqlclient.a(my_malloc.o)(.text+0x25): In function `my_malloc':
: undefined reference to `errno'
/usr/lib/mysql/libmysqlclient.a(my_malloc.o)(.text+0xb5): In function `my_memdup':
: undefined reference to `errno'
/usr/lib/mysql/libmysqlclient.a(my_malloc.o)(.text+0x18d): In function `my_strdup':
: undefined reference to `errno'
/usr/lib/mysql/libmysqlclient.a(my_realloc.o)(.text+0x55): In function `my_realloc':
: undefined reference to `errno'
/usr/lib/mysql/libmysqlclient.a(my_getwd.o)(.text+0x36): In function `my_getwd':
: undefined reference to `errno'
/usr/lib/mysql/libmysqlclient.a(my_getwd.o)(.text+0xb2): more undefined references to `errno' follow
collect2: ld returned 1 exit status
Hvad gør jeg galt?
