Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


23.8.7.21 mysql_fetch_row()

MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

説明

結果セットの次の行を取得します。mysql_store_result() のあとで使用すると、mysql_fetch_row() は、それ以上取得する行がない場合に、NULL を返します。mysql_use_result() のあとで使用すると、mysql_fetch_row() は、それ以上取得する行がないか、エラーが発生した場合に 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_ROW 構造。それ以上取得する行がないか、エラーが発生した場合は NULL

エラー

mysql_fetch_row() の呼び出しと呼び出しの間に、エラーはリセットされません。

  • CR_SERVER_LOST

    サーバーへの接続がクエリー中に失われました。

  • CR_UNKNOWN_ERROR

    不明なエラーが発生しました。

MYSQL_ROW row;
unsigned int num_fields;
unsigned int i;

num_fields = mysql_num_fields(result);
while ((row = mysql_fetch_row(result)))
{
   unsigned long *lengths;
   lengths = mysql_fetch_lengths(result);
   for(i = 0; i < num_fields; i++)
   {
       printf("[%.*s] ", (int) lengths[i],
              row[i] ? row[i] : "NULL");
   }
   printf("\n");
}