Fix SQL Error
This commit is contained in:
18
zh/05.4.md
18
zh/05.4.md
@@ -38,12 +38,14 @@ Go实现的支持PostgreSQL的驱动也很多,因为国外很多人在开发
|
||||
|
||||
看下面这个Go如何操作数据库表数据:增删改查
|
||||
|
||||
package main
|
||||
```Go
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"fmt"
|
||||
_ "https://github.com/lib/pq"
|
||||
_ "github.com/lib/pq"
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -58,10 +60,15 @@ package main
|
||||
checkErr(err)
|
||||
|
||||
//pg不支持这个函数,因为他没有类似MySQL的自增ID
|
||||
id, err := res.LastInsertId()
|
||||
checkErr(err)
|
||||
// id, err := res.LastInsertId()
|
||||
// checkErr(err)
|
||||
// fmt.Println(id)
|
||||
|
||||
var lastInsertId int
|
||||
err = db.QueryRow("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) returning uid;", "astaxie", "研发部门", "2012-12-09").Scan(&lastInsertId)
|
||||
checkErr(err)
|
||||
fmt.Println("最后插入id =", lastInsertId)
|
||||
|
||||
fmt.Println(id)
|
||||
|
||||
//更新数据
|
||||
stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")
|
||||
@@ -113,6 +120,7 @@ package main
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
从上面的代码我们可以看到,PostgreSQL是通过`$1`,`$2`这种方式来指定要传递的参数,而不是MySQL中的`?`,另外在sql.Open中的dsn信息的格式也与MySQL的驱动中的dsn格式不一样,所以在使用时请注意它们的差异。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user