Guida MySQL: Accesso a MySQL da C
http://www.swprog.com/guide/mysql-c-conn.php
9 Gennaio 2008 Database





Impostazioni del Compilatore

Per poter compilare un client c che si interfaccia con mysql si deve utilizzare la libreria libmysql.lib, è quindi necessario impostare particolari parametri nel compilatore utilizzato. In questo esempio si è utilizzato il ms visual c++ 2008 express edition (che è possibile scaricare da questa pagina).
Per creare un programma c che possa accedere a mysql si procede nel seguente modo, si crea un nuovo progetto, win32 console application

Figura 1.

il progetto è vuoto

Figura 2.
prima di compilare il progetto si va su Project -> <nomedelprogetto> properties

Figura 3.
Nella finestra che compare ci si porta nella parte sinistra della finestra su configuration properties -> linker -> command line, quindi nella parte destra della finestra si inserisce il nome della libreria che si utilizzerà, libmysql.lib, e quindi si clicca su applica.

Figura 4.
Quindi si va su tools->options

Figura 5.
e nella nuova finestra che compare ci si porta nella parte sinistra su projects and solutions -> vc++ directories. Quindi nella parte destra della finestra si inseriscono le directory in cui si trovano i file include e le librerie c mysql.

Figura 6.
La directory dei file include si trova in <mysql>\include, dove <mysql> è la directory in cui si trova mysql.

Figura 7.
La directory delle librerie si trova in <mysql>\lib\debug, dove <mysql> è la directory in cui si trova mysql.

Figura 8.
Infine si deve andare a modificare il valore della variabile d'ambiente PATH inserendo il percorso della libreria libmysql.lib, <mysql>\lib\debug.

Connessione a MySQL


I passi che il client deve seguire per interagire con il server MySQL sono i seguenti
  • inizializzare la libreria MySQL chiamando mysql_library_init(). Questa chiamata può essere evitata dato che la successiva chiamata a mysql_init() contiene automaticamente una chiamata a mysql_library_init();
  • inizializzare l’handle della connessione chiamando mysql_init() e connettendosi al server chiamando mysql_real_connect();
  • una volta connessi si compiono le operazioni volute (SELECT, INSERT, ecc.);
  • si chiude la connessione con il server MySQL chiamando mysql_close();
L'esempio che segue si connette al database mydb come root con password passwd, preleva l'ora corrente dal server MySQL e la scrive sul video

client.c
  1. #include <stdio.h>
  2. #include <mysql.h>
  3.  
  4. MYSQL *conn;
  5. MYSQL_RES *result;
  6. MYSQL_ROW row;
  7.  
  8. const char* host = "localhost"; // host
  9. const char* database = "mydb"; // database
  10. const char* db_user = "root"; // nome utente
  11. const char* db_pass = "passwd"; // password
  12.  
  13. int main (int argc, char *argv[])
  14. {
  15. conn = mysql_init (NULL);
  16. mysql_real_connect (conn, /* connection handler */
  17. host, /* host */
  18. db_user, /* user name */
  19. db_pass, /* password */
  20. database, /* database */
  21. 0, /* porta */
  22. NULL, /* socket */
  23. 0); /* flags */
  24.  
  25. mysql_query(conn, "SELECT CURTIME();");
  26. result = mysql_use_result(conn);
  27. row = mysql_fetch_row(result);
  28. printf("Ora: %s\n", row[0]);
  29.  
  30. mysql_close (conn);
  31. exit (0);
  32. }


 
Guida MySQL