2010-03-27 12 views
0

J'ai un champ avec énumérations: 'aperçu', 'actif', 'fermée'mise à jour MySQL énumérations

Quand je requête comme ceci:

 $query = "UPDATE albums 
       SET album_active = preview 
       WHERE album_id = 3"; 
     $result = mysql_query($query); 
     if (!$result) die('Invalid query: ' . mysql_error()); 

que je reçois:

Invalid query: Unknown column 'preview' in 'field list

Autre requête:

 $query = sprintf("UPDATE albums SET 
        album_active = %s 
        WHERE album_id = %d", 
        $_POST['album_active'], 
        $_POST['album_id'] 
      ); 

Répondre

3

Essayez de mettre preview entre guillemets comme:

SET album_active = 'preview' 

sans les guillemets preview seront reconnus par l'analyseur de requête comme un nom de colonne, quelque chose comme:

UPDATE TABLE T 
SET column1 = column2 
WHERE... 
+0

qui fonctionne, en fait j'ai une requête avec sprintf(). Voir le code mis à jour. à votre santé. – FFish

+0

Utilisez: album_active = '% s' – codaddict

+0

cool! une autre question ... sont tous les types de données envoyés par $ _POST converti en chaînes? – FFish