2017-09-05 63 views
0

我使用golang構建了一個基本應用程序,我使用的是github.com/go-sql-driver/mysql驅動程序。我在heroku上連接到clearDB mysql,但每次我收到時獲取mysql錯誤1064

錯誤1064:您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以在'desc'附近使用正確的語法,'id =?'的產品價格。在線1

我不能忍受爲什麼,這是我用於查詢產品數據庫的代碼段。

id := c.Param("id") 
    row := db.QueryRow("select id, desc, price from product where id = ?;", id) 
      err := row.Scan(&product.Id, &product.desc, &product.price) 
+0

你有沒有嘗試刪除';'從SQL語句? – syntagma

+0

「desc」是一個MySQL關鍵字:你需要用反引號引用它。 –

+0

'DESC'實際上是一個[保留字](https://dev.mysql.com/doc/refman/5.5/en/keywords.html)。大多數MySQL關鍵字可以不加引號使用,但保留字是必須引用的那些關鍵字的子集。儘管如此,我認爲最好避免將它們用作列名。 –

回答

1

desc是一個關鍵字,讓你在遇到麻煩的時候,你也叫列desc

用MySQL,你需要用反引號引用的名字,像這樣:

"select id, `desc`, price from product where id = ?" 
+0

非常感謝,它的工作! – Sean