il problema l'ho risolto, anche se non ho capito perchè, come ho fatto io, è sbagliato.
ho riscritto il codice in questo modo:
Codice PHP:
$result = @$conn->query("SELECT * FROM libri2 INNER JOIN libro_biblio  ON libro_biblio.id_libro2 = libri2.id_libro_arc  WHERE libro_biblio.id_biblio='".$id_bib."'");        
while ((
$row $result->fetch_assoc()) !== NULL)             
echo 
$row['titolo']."
"

cioè facendo stampare direttamente il valore restituito senza assegnarlo alla variebile
Codice PHP:
$titolo 
e se lascio nel codice la variabile $titolo, ma senza utilizzarla

Codice PHP:
$titolo $row['titolo']; 
echo 
$row['titolo']."
"


echo $row['titolo']."
";

non da nessuna corrispondenza.
L'utilizzo delle variabili è molto comodo e si ottiene con codice più comprensibile, ma perchè in questo caso non mi fa funzionare lo script?