関数リファレンス
   

関数

mysql_query()
NULL終端の文字列(SQL文)をクエリ実行
   

書式

int mysql_query(MYSQL *mysql, const char *query)

MYSQL *mysql; MYSQL構造体
const char *query クエリの領域

戻り値

成功の場合は0。未知のオプションを使用した場合は0以外。

エラー

CR_COMMANDS_OUT_OF_SYNC 不当な順にコマンドが実行された
CR_SERVER_GONE_ERROR MySQL サーバがいなくなった
CR_SERVER_LOST サーバへの接続がクエリ中に失われた
CR_UNKNOWN_ERROR 未知のエラーが発生した
   

機能

NULL 終端文字列 query で示される SQL クエリを実行します。クエリはひとつの SQL ステートメントでなければなりません。終端のセミコロン (`;')や \g をステートメントに追加すべきではありません。

mysql_query() はバイナリデータを含むクエリには使用できません(バイナリデータは `\0' 文字を含むことがあります。これはクエリ文字列の最後として解釈されます)。この場合、mysql_real_query() を代わりに使用してください。

バイナリデータを含むクエリの場合、mysql_real_query()を使用してください

mysql.hのMYSQL_ROW変数

typedef char **MYSQL_ROW; /* return data as array of strings */

取得したresはmysql_fetch_row関数でrowへポインタを返します。

   

サンプル

//かねやんMySQLAdminより
// CListViewへデータを挿入するサンプル
// myDataはmysql_real_connectでオープン済み

MYSQL_RES *res;
MYSQL_ROW row;
LV_ITEM listitem;
listCtrl.DeleteAllItems();
int count = 0;
int iActualItem;
//クエリを発行
if(mysql_query(myData,Query))
    return;
//サーバからデータを取り出す
if((res=mysql_store_result(myData))==NULL){
    mysql_free_result(res);
    return;
}
while(row=mysql_fetch_row(res)){ // すべてのレコードが読み込まれるまで
    char Work[256];
    // すべてのレコードを表示する
    listitem.mask = LVIF_TEXT;
    listitem.iItem = count;
    listitem.iSubItem = 0;
    strcpy(Work,row[0]);
    listitem.pszText = Work;
    iActualItem = listCtrl.InsertItem(&listitem);
    for(int i=1;i<field_count;i++){
      if(row[i]!=NULL){ //NULLのフィールドがあるか
           listitem.iItem = iActualItem;
           listitem.iSubItem = i;
            strcpy(Work,row[i]);
           listitem.pszText = Work;
           listCtrl.SetItem(&listitem);
      }
    }
}

Japanese MySQL Manualより抜粋