Buonasera a tutti.
Sto invano tentando di connettermi ad un db mysql da un programma in c.
ho scritto il seguente codice :
#include <stdio.h>
#include <stdlib.h>
//#include <my_global.h>
#include <mysql.h>
//#include <mysql/mysql.h>
const char* host = "localhost"; // host di connessione
const char* database = "primeprove"; // database di connessione
const char* db_user = "root"; // nome utente per la connessione
const char* db_pass = ""; // password non cifrata
int main ()
{
MYSQL mysql;
MYSQL_ROW row; // la riga
MYSQL_RES* result;
MYSQL_FIELD* field; // il campo ritornato
char* query = "SELECT * FROM login;";
int i = 0, j = 0, n_rows = 0;
// restituisce NULL se non avviene con successo
if (! mysql_init (&mysql)) {
printf ("Errore nella allocazione di memoria.n");
exit (EXIT_FAILURE);
}
if (! mysql_real_connect (&mysql, host, db_user, db_pass, "",
0, NULL, 0)) {
printf ("Errore nella connessione.n");
goto error;
}
// restituisce zero se avviene con successo
if (mysql_select_db (&mysql, database)) {
printf ("Errore nella selezione del database.n");
goto error;
}
printf ("Connessione avvenuta.n");
// restituisce zero se avviene con successo
if (mysql_select_db (&mysql, database)) {
printf ("Errore nella selezione del database.n");
goto error;
}
// esegue la query
if (mysql_query (&mysql, query)) {
printf("Errore nella query.n");
goto error;
}
result = mysql_store_result (&mysql);
n_rows = mysql_num_rows (result);
for (j = 0; j < n_rows; j++) {
i = 0;
mysql_field_seek (result, 0); // sposta a inizio riga
row = mysql_fetch_row (result); // preleva i dati della riga
while ((field = mysql_fetch_field (result))) {
printf ("%s: ", field->name); // visualizza il campo
printf ("%sn", row[i++]); // visualizza il dato del campo
}
printf ("n");
}
mysql_free_result (result);
error:
mysql_close (&mysql); // chiusura del database
exit (EXIT_SUCCESS);
}
il quale mi restituisce i seguenti errori :
obj\Debug\main.o||In function `main':|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|28|undefined reference to `mysql_init@4'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|33|undefined reference to `mysql_real_connect@32'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|40|undefined reference to `mysql_select_db@8'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|49|undefined reference to `mysql_select_db@8'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|55|undefined reference to `mysql_query@8'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|60|undefined reference to `mysql_store_result@4'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|62|undefined reference to `mysql_num_rows@4'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|66|undefined reference to `mysql_field_seek@8'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|67|undefined reference to `mysql_fetch_row@4'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|68|undefined reference to `mysql_fetch_field@4'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|78|undefined reference to `mysql_free_result@4'|
C:\Users\lorenzo\Documents\Università 2013\Progetti C\PrimaProvaconnessioneMysql\main.c|81|undefined reference to `mysql_close@4'|
||=== Build finished: 12 errors, 0 warnings (0 minutes, 3 seconds) ===|
per completezza aggiungo che uso codeblocks e lavoro su windows
Grazie a tutti