#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <mysql/mysql.h>
const char* host = "localhost"; // host di connessione
const char* database = "prova"; // database di connessione
const char* db_user = "root"; // nome utente per la connessione
const char* db_pass = ""; // password non cifrata
using namespace std;
bool logga_db(MYSQL *mysql);
void stampa(MYSQL *mysql);
int main()
{
MYSQL mysql;
if(logga_db(&mysql))
return 0;
stampa(&mysql);
mysql_close (&mysql); // chiusura del database
system("pause");
return 0;
}
bool logga_db(MYSQL *mysql)
{
bool errore=false;
// restituisce NULL se non avviene con successo
//serve a inizializzare le funzioni successive
if (! mysql_init (mysql))
{
cout<<"Errore nella allocazione di memoria.\n";
errore=true;
}
if (! mysql_real_connect (mysql, host, db_user, db_pass, "",0, NULL, 0))
{
cout<<"Errore nella connessione.\n";
errore=true;
}
// restituisce zero se avviene con successo
if (mysql_select_db (mysql, database))
{
cout<<"Errore nella selezione del database.\n";
errore=true;
}
return errore;
}
void stampa(MYSQL *mysql)
{
MYSQL_ROW row; // la riga
MYSQL_RES* result;
MYSQL_FIELD* field;
char* query = "SELECT * FROM coda;";
// esegue la query
if (mysql_query (mysql, query))
{
cout<<"Errore nella query.\n";
system("pause");
exit(1);
}
int i = 0, j = 0, n_rows = 0;
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 ("%s\n", row[i]);
i++;
// visualizza il dato del campo
}
printf ("\n");
}
mysql_free_result (result);
}