MySQL
前提条件
サーバがインストールされている場合
サーバにLibをインストールする
クライアントからの場合
このサイトより「msi」パッケージをインストールしておく
libファイルのMinGW用変更
C:\MinGW\bin>reimp.exe "C:\Program Files\MySQL\MySQL Server 5.1\lib\opt\libmysql.lib"
C:\MinGW\bin>
C:\MinGW\bin>dir liblibmysql.a
C:\MinGW\bin のディレクトリ
2010/06/24 14:04 113,530 liblibmysql.a
1 個のファイル 113,530 バイト
C:\MinGW\bin>
※MinGWではライブラリファイルを変換する必要がある
※reimp.exeはユーティリティにしか存在しないのでダウンロードしておく
サンプルソース
#include <stdio.h>
#include <winsock.h>
#include <mysql.h>
int main(void){
//データベース情報
const char host[] = "localhost"; //接続先
const char user[] = "root"; //ユーザ名
const char password[] = "root123"; //パスワード
const char dbname[] = "testdb1"; //データベース名
const char sql[] = "SELECT * FROM test_tbl1"; //SQL文
const char sql2[] = "SET NAMES CP932;"; //SQL文
//MySQL用の構造体
MYSQL* mysql; //接続情報
MYSQL_RES* res; //クエリの返信データ
MYSQL_FIELD* field; //フィールド(カラム)情報
MYSQL_ROW row; //ロウ(レコード)情報
//その他の変数宣言
int num_fields; //フィールド数
int num_rows; //ロウ数
int i; //ループカウンタ
//mysqlの確保と初期化
mysql = mysql_init(0);
//MySQLに接続
if(mysql_real_connect(mysql
, host
, user
, password
, dbname
, MYSQL_PORT
, NULL
, 0) == NULL){
printf("%s\n",mysql_error
(mysql
)); return -1;
}
//SQLの発行
if(mysql_query(mysql,sql2) != 0){
printf("%s\n",mysql_error
(mysql
)); mysql_close(mysql);
return -1;
}
//SQLの発行
if(mysql_query(mysql,sql) != 0){
printf("%s\n",mysql_error
(mysql
)); mysql_close(mysql);
return -1;
}
//MySQLからデータを取得
res = mysql_store_result(mysql);
if(res == NULL){
printf("%s\n",mysql_error
(mysql
)); mysql_close(mysql);
return -1;
}
//ロウ数取得
num_rows = mysql_num_rows(res);
printf("データ件数:%d\n",num_rows
);
//フィールド数取得
num_fields = mysql_num_fields(res);
//フィールド情報取得
field = mysql_fetch_fields(res);
//データを読み取って表示
while(row = mysql_fetch_row(res)){
for (i = 0; i < num_fields; i++){
printf("%s=%s/",field
[i
].
name,row
[i
]); }
}
//MySQLと切断
mysql_close(mysql);
return 0;
}
コンパイル・実行
C:\MinGW>gcc -I"C:\Program Files\MySQL\MySQL Server 5.1\include" mysql_sample01.c liblibmysql.a -o mysql_sample01.exe
C:\MinGW>mysql_sample01.exe
データ件数:6
BK_CD=001/BK_KM=ミズホ/bankinf_mst=みずほ銀行/test_tbl1=1/testdb1=1/
BK_CD=005/BK_KM=ミツビシトウキョウUFJ/bankinf_mst=三菱東京UFJ銀行/test_tbl1=1/testdb1=2/
BK_CD=009/BK_KM=ミツイスミトモ/bankinf_mst=三井住友銀行/test_tbl1=1/testdb1=3/
BK_CD=010/BK_KM=リソナ/bankinf_mst=りそな銀行/test_tbl1=1/testdb1=4/
BK_CD=016/BK_KM=ミズホコーポレート/bankinf_mst=みずほコーポレート銀行/test_tbl1=1/testdb1=5/
BK_CD=017/BK_KM=サイタマリソナ/bankinf_mst=埼玉りそな銀行/test_tbl1=1/testdb1=6/
C:\MinGW>
最終更新:2010年06月24日 15:49