関数リファレンス
   

関数

mysql_fetch_row()
結果セットから次のレコードを取り出す
   

書式

MYSQL_ROW mysql_fetch_row(result)

MYSQL_RES *result MYSQL RES構造体

戻り値

次のレコードの MYSQL_ROW 構造体、エラーが発生したか、もう取り出すレコードがない場合は NULL

エラー

CR_SERVER_LOST サーバへの接続がクエリ中に失われた
CR_UNKNOWN_ERROR 未知のエラーが発生した
   

機能

結果セットの次のレコードを取り出します。mysql_store_result() の後に使用すると、これ以上取り出すレコードがない時は、NULL を返します。 mysql_use_result() の後に使用するなら、これ以上取り出すレコードがない場合やエラーが発生した場合に NULL を返します。

レコード内の値の数は mysql_num_fields(result) によって与えられます。 rowmysql_fetch_row() の呼び出しからの戻り値を保持する場合、値へのポインタは row[0] から row[mysql_num_fields(result)-1 としてアクセスされます。レコード内の NULL 値はNULL ポインタによって示されます。

レコードのフィールド値の長さは、mysql_fetch_lengths() の呼び出しで獲得できます。空フィールドと NULL を含むフィールドはどちらも長さ 0 を持ちます; フィールド値のポインタをチェックすることで、これらを区別できます。ポインタが NULL の場合、フィールドは NULL です; そうでなければフィールドは空です。

もっと詳しいサンプルが見たいときはmysql_query()を参照してください
   

サンプル

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のフィールドがあるか
        //NULLフィールドの場合
            listitem.iItem = iActualItem;
            listitem.iSubItem = i;
            strcpy(Work,row[i]);
            listitem.pszText = Work;
            listCtrl.SetItem(&listitem);
        }
    }
}

Japanese MySQL Manualより抜粋