Salut !
C'est mysql_real_escape_string de ta variable, pas de toute ta requête :D
Ca protège tout les caractères spéciaux par des . En l'ajoutant sur ta chaîne, ça va devenir : bonjour, j\'aurai
Ainsi, tu dis à php de ne pas en prendre en compte la fermeture de quotes, et donc de la fin d'initialisation de ta variable
Si tu utilises ça sur toute ta requête, tu auras des \ partout devant tes caractères spéciaux (toutes les quotes, signes etc)
Ca devient ça du coup :
<?php
if (!empty($_POST)) {
extract ($_POST);
$contenu = mysql_real_escape_string($contenu);
$sql="UPDATE newstest SET titre='$titre', lien='$lien', contenu='$contenu', imagelien='$imagelien', date='$date' WHERE id=$id";
$req=mysql_query($sql) or die ('erreur SQL !</br>'.$sql.'</br>'.mysql_error());
echo "News Mise à Jour";
$_GET"id"]=$id;
}
$sql="SELECT * FROM newstest WHERE id={$_GET"id"]}";
$req=mysql_query($sql) or die ('erreur SQL !</br>'.$sql.'</br>'.mysql_error());
$data=mysql_fetch_assoc($req);
?>