文档主页
MySQL 9.0 C API 开发人员指南
下载本手册
PDF (US Ltr) - 1.4Mb
PDF (A4) - 1.4Mb


5.4.21 mysql_fetch_lengths()

unsigned long *
mysql_fetch_lengths(MYSQL_RES *result)

描述

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

空列或包含 NULL 值的列的长度为零。有关如何区分这两种情况,请参阅 mysql_fetch_row() 的描述。

返回值

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

错误

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

示例

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