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");
}
