### ソースコード
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql/mysql.h> int main(){ MYSQL *conn = NULL; MYSQL_RES *resp = NULL; MYSQL_ROW row; char sql_str[255]; char *sql_serv = "localhost"; char *user = "root"; char *passwd = "hogehoge"; char *db_name = "test"; memset( &sql_str[0], 0x00, sizeof(sql_str)); // memsetはメモリに指定バイト数分の値をセット, 0x00はヌル文字 conn = mysql_init(NULL); if(!mysql_real_connect(conn, sql_serv, user, passwd, db_name, 0, NULL, 0)){ // サーバ接続開始 mysql_real_connect(mysql, host, user,passwd,db, port, unix_socket, client_flag) exit(-1); } // クエリ実行 snprintf(&sql_str[0], sizeof(sql_str)-1, "select * from test"); // snprintfは指定文字数分だけ文字配列に書き込む if(mysql_query(conn, &sql_str[0])){ // sql_str によって指示される SQL ステートメントを実行 mysql_close(conn); exit(-1); } // レスポンス resp = mysql_use_result(conn); // 結果セットの取得を開始 while((row = mysql_fetch_row(resp)) != NULL){ // 結果を添字配列として取得する printf("%d: %s\n", atoi(row[0]), row[1]); } mysql_free_result(resp); // 結果保持用メモリを開放 mysql_close(conn); // MySQL 接続を閉じる return 0; }
### ライブラリのlibmysqlclient.soの配置場所を確認
$ find / -name “libmysqlclient.so”
/usr/lib/x86_64-linux-gnu/libmysqlclient.so
### コンパイル、実行
// -Wは警告メッセージ抑制, -Lはオブジェクトライブラリ
$ gcc -Wall -o dev hello.c -lmysqlclient -L/usr/lib/x86_64-linux-gnu/
$ ./dev
1: aaa
2: bbb
3: ccc
おいおい、マジかよ。。。
感動した。