possibile che la query insert del mio codice sia sbagliata?

ho questo errore

Codice PHP:
You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = '29'' at line 1 
il mio codice è questo
Codice PHP:
include("db_connect.php");

$query_mail mysql_query("SELECT email FROM preventivi WHERE id=$id");

while(
$risultato mysql_fetch_array($query_mail))
{
extract($risultato);$email=$risultato['email'];}

//se l'email è inviata o no inserisco risposta db e rimando a mail.php codice conferma
if(mail($email$mittente$testo$header))


 {
$codice_conferma="ok";
 
$risposta="si";
  
$query_risposta_email=mysql_query("INSERT INTO preventivi (risposta) VALUES ('$risposta') WHERE id = '$id' ") or die(mysql_error());}

else{
$codice_conferma="no";}

//codice conferma rimando a pagina mail.php

switch($codice_conferma){
case 
"ok":
header('Location:mail.php?id='.$id.'&email='.$email.'&codice_conferma='.$codice_conferma.'');
break;
case 
"no":
header('Location:mail.php?id='.$id.'&email='.$email.'&codice_conferma='.$codice_conferma.'');
break;} 
non capisco eppure mi sembra di averla scritta bene,parlo della $query_risposta_email

magari c'è qualche errore che non trovo?