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は参照しないようにすること。
コメントを残す