$url = "mysql-c-conn.php"; $tipo = 'e';
$index = false; $pubblicita = true;
$title = "Guida MySQL: Accesso a MySQL da C";
include("../include/page_struct_initial.php");
include("../visite.php");
?>
/*include("../pubblicita/pubblicita_testa.php");*/ ?>
include("../include/article_header.php");
write_article_header("Guida MySQL: Accesso a MySQL da C",
"9 Gennaio 2008",
"Database",
"",
0,
"g");
?>
include("../pubblicita/annunci_google_testa.php"); ?>
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
include("../pubblicita/pubblicita_fine.php"); ?>
il progetto è vuoto
prima di compilare il progetto si va su Project -> <nomedelprogetto> properties
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.
Quindi si va su tools->options
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.
La directory dei file include si trova in <mysql>\include, dove
<mysql> è la directory in cui si trova mysql.
La directory delle librerie si trova in <mysql>\lib\debug, dove
<mysql> è la directory in cui si trova mysql.
Infine si deve andare a modificare il valore della variabile d'ambiente PATH
inserendo il percorso della libreria libmysql.lib, <mysql>\lib\debug.
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
#include <stdio.h>
#include <mysql.h>
MYSQL *conn;
MYSQL_RES *result;
MYSQL_ROW row;
const char* host = "localhost"; // host
const char* database = "mydb"; // database
const char* db_user = "root"; // nome utente
const char* db_pass = "passwd"; // password
int main (int argc, char *argv[])
{
conn = mysql_init (NULL);
mysql_real_connect (conn, /* connection handler */
host, /* host */
db_user, /* user name */
db_pass, /* password */
database, /* database */
0, /* porta */
NULL, /* socket */
0); /* flags */
mysql_query(conn, "SELECT CURTIME();");
result = mysql_use_result(conn);
row = mysql_fetch_row(result);
printf("Ora: %s\n", row[0]);
mysql_close (conn);
exit (0);
}
include("mysql-guide-page.php"); ?>
include("../include/guide_page.php"); ?>
include("../include/page_struct_final.php"); ?>