【发布时间】:2015-07-03 05:15:46
【问题描述】:
我正在尝试使用database/sql 在 Postgres 表中插入一行。我正在运行的代码看起来像
...
res, err := db.Exec("INSERT INTO image(name) VALUES(?);", fname)
if err != nil {
return err
}
...
fname 是一个字符串。像"image-name.png" 这样的东西。 image 表是由语句创建的
...
_, err := db.Exec("CREATE TABLE image (id SERIAL, name VARCHAR)")
...
运行CREATE TABLE 语句后,我可以跳到psql 并手动运行
INSERT INTO image(name) VALUES('some-random-image.jpg');
将适当的行添加到image 表中。但是,上面的 INSERT Exec 调用始终会出现 pq: syntax error at or near ")" 错误。
谁能指出我在这里做错了什么?
另外,作为后续,有什么方法可以查看go中的语句格式化结果吗?我正在考虑类似func Preview (template string, args...) string 这样的东西
Preview("INSERT INTO tbl(col) VALUES(?);", "test")
=> "INSERT INTO tbl(col) VALUES('test');"
【问题讨论】:
标签: postgresql go syntax-error prepared-statement