MySQL.RU .:. Одобрено лучшими российскими программистами

Справочное руководство по MySQL

8.4.3.75 mysql_fetch_lengths()

8.4.3.75 mysql_fetch_lengths()

unsigned long *mysql_fetch_lengths(MYSQL_RES *result)

8.4.3.76 Описание

Возвращает длины столбцов текущей строки внутри результирующего набора данных. Если вы планируете копировать величины столбцов, то эта информация о длинах полезна также для оптимизации, поскольку помогает избежать вызова функции strlen(). Кроме того, если результирующий набор содержит двоичные данные, то необходимо использовать рассматриваемую функцию для определения размера этих данных, поскольку функция strlen() возвращает некорректные результаты для поля, содержащего символы NULL.

Искомая длина для пустых столбцов и для столбцов, содержащих величины NULL, равна нулю. Чтобы увидеть, как следует различать эти два случая, см. описание для функции mysql_fetch_row().

8.4.3.77 Возвращаемые значения

Массив беззнаковых целых чисел, представляющий собой размер каждого столбца (не включая конечные нулевые символы). NULL если произошла ошибка.

8.4.3.78 Ошибки

Функция mysql_fetch_lengths() действительна только для данной текущей строки в результирующем наборе данных. Она возвращает NULL, если ее вызов происходит до вызова функции mysql_fetch_row() или после извлечения всех строк в результате.

8.4.3.79 Пример

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