DRYな備忘録

Don't Repeat Yourself.

【Go言語】database/sqlのplaceholderで叱られる

問題

    res, err = db.Exec(
        "INSERT INTO table001 (name,age) VALUES (?, ?);",
        "otiai10",
        17,
    )

で、以下のように叱られる

pq: syntax error at or near ","

なお当方、

import "database/sql"
import _ "github.com/lib/pq"

の構成です

解決

?じゃなくて$nを使え

    res, err = db.Exec(
-       "INSERT INTO table001 (name,age) VALUES (?,?);",
+       "INSERT INTO table001 (name,age) VALUES ($1,$2);",
        "otiai10",
        123,
    )

雑感

  • sqlさっぱり忘れて自信が無い状態だったので「やはり俺のSQLはまちがっている」という考えに囚われてしまった

DRY