フィールドを取り出す最短手順

MYSQL sql;
char query[1024];
MYSQL_RES *result;
MYSQL_ROW row;
//sqlにMYSQL接続情報を叩き込む(詳細は割愛)
//queryにSQL文を代入
sprintf(query,"select * from tb_hoge");
//クエリ実行
mysql_query(&sql, query);
//結果セット取得
result=mysql_store_result(&sql);
//先頭レコード取得(複数レコードの場合はループ化)
row=mysql_fetch_row(result);
//先頭フィールド参照(複数フィールドなら添え字を進めて参照)
int i;
i=atoi(row[0]);
//結果セット解放
mysql_free_result(result);

みたいな感じ。
クエリ実行→結果セット取得→レコード取得→フィールド参照→結果セット解放
って暗記しとけ。
あと、結果セットを解放しても、rowが解放されるかどうかは、MySQLクライアントライブラリが状況に応じて判断する。
ので、mysql_free_resultの後にrowを参照しても動く場合があるが、危険。
mysql_free_resultのあとにrowは参照しないようにすること。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です