2010-03-27 50 views
0

我有枚舉字段: '預覽', '主動', '關閉'MySQL的更新枚舉

當我查詢是這樣的:

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

我得到:

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

其他查詢:

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

回答

3

嘗試把preview引號爲:

SET album_active = 'preview' 

不帶引號preview將通過查詢分析器作爲列名的認可,是這樣的:

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

的作品,其實我有sprintf的查詢()。查看更新的代碼。乾杯。 – FFish 2010-03-27 14:58:58

+0

使用:album_active ='%s' – codaddict 2010-03-27 15:00:03

+0

酷!另一個問題..都是由$ _POST轉換爲字符串發送的數據類型? – FFish 2010-03-27 15:04:41