J'ai un problème avec UPDATE

Bonjour, je veux utiliser al fonction UPDATE, mais une erreur s'affiche, pourtant je n'en vois pas.

Voici mon code :

if (isset($_POST['bloquer']))
{
$donnees = mysql_fetch_array($reponse);
$lock = 0;
$unlock = 1;
$query_lock = mysql_query('UPDATE forum_'.$_GET['titre'].' SET lock='.$lock.' WHERE titre=\''.$donnees['titre'].'\'') or die (mysql_error());

if ($query_lock)
{
echo '<center> La discussion '.$donnees['titre'].' a bien été bloquée !</center>
';
}
}

Et voici l'erreur :

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lock=0 WHERE titre='L\'esprit d\'Ultra Vomit'' at line 1

Pouvez-vous m'aider ?
Merci.
Configuration: Windows Vista
Firefox 3.5.5

14 réponses

  1. Tout est dans l'erreur ...
    if (isset($_POST['bloquer'])) {
        $donnees = mysql_fetch_array($reponse);
        $lock = 0;
        $unlock = 1;
        $query_lock = mysql_query('UPDATE forum_'.$_GET['titre'].' SET lock = '.$lock.' WHERE titre="'..$donnees['titre'].'") or die (mysql_error());
    
        if($query_lock == true) {
            echo '<center> La discussion '.$donnees['titre'].' a bien été bloquée !</center>'."\n";
        }
    } 
    0
    1. J'ai fait ce que tu as écrit, mais ca me met :

      You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lock = 0 WHERE titre="L'esprit d'Ultra Vomit"' at line 1
      0
      1. J'ai oublié quelque-chose :
        if (isset($_POST['bloquer'])) {
            $donnees = mysql_fetch_array($reponse);
            $lock = 0;
            $unlock = 1;
            $query_lock = mysql_query('UPDATE forum_'.$_GET['titre'].' SET lock = '.$lock.' WHERE titre="'..$donnees['titre'].'"') or die (mysql_error());
        
            if($query_lock == true) {
                echo '<center> La discussion '.$donnees['titre'].' a bien été bloquée !</center>'."\n";
            }
        } 
        0
        1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lock = 0 WHERE titre="L'esprit d'Ultra Vomit"' at line 1

          Toujours ^^
          0
          1. Après le WHERE, j'ai mis deux points ...
            Je penses que cette fois on est à la bonne
            0
            1. Quand je met les deux points, il me met une parse error
              0
              1. Si je veux qu'il n'y en ait pas, je dois enlever un des deux points.
                0
                1. oui, il doit en rester qu'un seul.
                  if (isset($_POST['bloquer'])) {
                      $donnees = mysql_fetch_array($reponse);
                      $lock = 0;
                      $unlock = 1;
                      $query_lock = mysql_query('UPDATE forum_'.$_GET['titre'].' SET lock = '.$lock.' WHERE titre="'.$donnees['titre'].'"') or die (mysql_error());
                  
                      if($query_lock == true) {
                          echo '<center> La discussion '.$donnees['titre'].' a bien été bloquée !</center>'."\n";
                      }
                  } 
                  0
                  1. Oui, et quand il n'en reste qu'un, ca me met :
                    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lock = 0 WHERE titre="L'esprit d'Ultra Vomit"' at line 1
                    0
                    1. if (isset($_POST['bloquer'])) {
                          $donnees = mysql_fetch_array($reponse);
                          $lock = 0;
                          $unlock = 1;
                          $query_lock = mysql_query('UPDATE forum_'.$_GET['titre'].' SET lock = "'.$lock.'" WHERE titre = "'.$donnees['titre'].'"') or die (mysql_error());
                      
                          if($query_lock == true) {
                              echo '<center> La discussion '.$donnees['titre'].' a bien été bloquée !</center>'."\n";
                          }
                      } 
                      0
                      1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'lock = "0" WHERE titre="L'esprit d'Ultra Vomit"' at line 1

                        Ca commence a devenir compliqué ^^
                        0
                        1. Enfait le problème est simple : tu n'utilises pas addslashes donc l'apostrophe dans "L'esprit" fou le bordel.
                          0
                          1. Ouai, je dois y aller, je ferais ca demain ^^
                            Merci en tout cas :)
                            0