2011-03-25 220 views
4
$my->query("UPDATE ideas 
       SET category = 'Document Options', 
        category_id = '4', 
        status = 'Released', 
        status_id = '3', 
        title = 'Support for iPad', 
        idea = 'Add support for iPad. Allow uploads and downloads via the anonymous App for iPhone and iPad.', 
        release = '0', 
        release_date = '' 
      WHERE id = '225'"); 

$my是一個包含很多其他mysql命令的自定義類。爲了證明它工作正常,它的偉大工程,爲下面的查詢:這個MySQL語句有什麼問題?

$my->query("UPDATE idea_feedback 
       SET Feedback = '$feedback', 
        Date = '$fdate' 
      WHERE ID = '$i'"); 
+0

你得到了什麼類型的錯誤? – Jason 2011-03-25 22:56:55

+1

爲什麼這個問題?查詢對我來說很好(除了'release_date ='''應該是'release_date = NULL' - 不確定MySQL是否會隱式地將它轉換爲某種默認的日期時間?)。你有什麼錯誤嗎? – 2011-03-25 22:57:39

+1

在語法方面我看不出任何問題,但我認爲我們確實需要更多信息。你得到的MySQL錯誤是什麼? – 2011-03-25 23:00:11

回答

4

釋放是一個關鍵字,反引號它

$my->query("UPDATE ideas SET category='Document Options', category_id='4', 
      status='Released', status_id='3', title='Support for iPad', 
      idea='Add support for iPad. Allow uploads and downloads via the anonymous App for iPhone and iPad.', 
      `release`='0', release_date='' WHERE id='225'"); 

注:

  1. RELEASE_DATE = '' 將其設置爲無效的日期標記'0000-00-00'
  2. 請不要引用數字,即使MySQL允許你
+0

+1你說得對。儘管'status'和'date'(後者在工作查詢中使用)也是關鍵字。但是他們可能不會在查詢中爲MySQL創建歧義,因此不會失敗。 – 2011-03-25 23:13:44

+2

@fireeyedboy - http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html'發佈'在列表中,日期/狀態不是 – RichardTheKiwi 2011-03-25 23:16:48

+0

非常感謝!事實上就是這樣。我重組了這個頁面來停止檢查值是否不同,並且只是將它們全部更新爲管理頁面。事實證明,釋放鍵從未使用,直到我這樣做。感謝大家!! – Ryan 2011-03-25 23:24:51