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)
によって与えられます。row
がmysql_fetch_row()
を呼び出して得た戻り値を保持している場合、その値へのポインターは、row[0]
から
row[mysql_num_fields(result)-1]
にとしてアクセスされます。列中のNULL
値はNULL
ポインターによって示されます。
列中のフィールド値の長さは、mysql_fetch_lengths()
を呼び出すことによって得ることができます。空のフィールドとNULL
を含むフィールドは両方共length
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"); }