mysql.h


Función mysql_fetch_lengths()

unsigned long *mysql_fetch_lengths(MYSQL_RES *result)

Devuelve las longitudes de las columnas de la fila actual de un conjunto de resultados. Si se planea copiar valores de campos, esta información de longitud es muy útil para la optimización, ya que se puede evitar la llamada a strlen(). Además, si el conjunto de resultados contiene datos binarios, se debe usar esta función para determinar el tamaño de los datos, porque strlen() devolverá resultados incorrectos para cualquier campo que contenga caracteres nulos.

La longitud para cadenas vacías y para columnas que contengan valores NULL es cero. Para distinguir entre ambos casos, ver la descripción de la función mysql_fetch_row().

Valores de retorno

Un array de enteros long sin signo que representas los tamaños de cada columna (sin incluir el carácter nulo terminador). NULL si se produce un error.

Errores

mysql_fetch_lengths() sólo es válido para la fila actual del conjunto de resultados. Devuelve NULL si es llamada antes de llamar a mysql_fetch_row() o después de recuperar todas las filas del resultado.

Ejemplo

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("Columna %u tiene %lu bytes de longitud.\n", i, lengths[i]);
    }
}