27.7.6.20 mysql_fetch_lengths()

unsigned long *mysql_fetch_lengths(MYSQL_RES *result)

Description

返回结果集中当前行的列长度。如果您打算复制字段值,则此长度信息对于优化也很有用,因为可以避免调用strlen()。另外,如果结果集包含二进制数据,则必须使用此函数来确定数据的大小,因为strlen()对于任何包含空字符的字段都会返回错误的结果。

空列和包含NULL个值的列的长度为零。要了解如何区分这两种情况,请参见mysql_fetch_row()的说明。

Return Values

一个无符号长整数数组,代 table 每个列的大小(不包括任何终止的空字节)。 NULL如果发生错误。

Errors

mysql_fetch_lengths()仅对结果集的当前行有效。如果在调用mysql_fetch_row()之前或检索结果中的所有行之后调用它,它将返回NULL

Example
MYSQL_ROW row;
unsigned long *lengths;
unsigned int num_fields;
unsigned int i;

row = mysql_fetch_row(result);
if (row)
{
    num_fields = mysql_num_fields(result);
    lengths = mysql_fetch_lengths(result);
    for(i = 0; i < num_fields; i++)
    {
         printf("Column %u is %lu bytes in length.\n",
                i, lengths[i]);
    }
}