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)
によって取得します。mysql_fetch_row()
を呼び出してその戻り値が row
に格納されている場合、値へのポインタは
row[0]
から
row[mysql_num_fields(result)-1]
のように表されます。NULL
ポインタは、レコードの値が
NULL
値であることを示します。
mysql_fetch_lengths()
を呼び出すと、レコードのフィールド値の長さを取得できます。空のフィールドおよび
NULL
を含むフィールドの長さはどちらも 0
ですが、そのフィールドのポインタを調べることによってその
2 つを区別できます。ポインタが
NULL
の場合、フィールドの値は
NULL
です。それ以外の場合、フィールドは空です。
戻り値
次のレコードの MYSQL_ROW
構造体。取得するレコードが残っていないか、エラーが発生した場合は
NULL
。
エラー
注意: mysql_fetch_row()
を 1
回呼び出してから、次に呼び出すまでの間にエラーがリセットされることはありません。
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"); }
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.