premierement met une claque au mec qui a pondu un code aussi peu clair.
lengths est un pointeur sur un tableau d'entier retourner par l'appel a mysql qui donne la taille des donnee par champs.
"%.*s" est un construct super bizarre de printf qui sert a donner la taille de la chaine a afficher avec un parametre supplementaire de facon a ce que printf("%.*s", 4 "foobar"); affiche "foob". Si tu appelle printf("%.*s", 12 "foobar"); ca affiche "foobar ". C'est utile pour conserver l'alignement
ensuite, il veut gerer les cas ou la valeure retourne est NULL pour eviter une eventuel segfault, tout en conservant l'alignement.
C'est equivalent a:
if (rows[i] == NULL) printf ("[%.*s]", lengths[i], "NULL");
else printf ("[%.*s]", lengths[i], rows[i]);
Bref, balancer ca dans un tuto ou dans un code, c'est un peu chercher les problemes puisque c'est pas completement clair.