2017-09-05 14 views
0

私はgolangで基本的なアプリケーションを構築しています。私はgithub.com/go-sql-driver/mysqlドライバを使用しています。私はherokuのclearDB mysqlに接続していますが、毎回取得しています。mysqlエラー1064

エラー1064:SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が「desc、price from product where 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