Fix SQL Error
This commit is contained in:
@@ -23,7 +23,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
|
||||
`departname` VARCHAR(64) NULL DEFAULT NULL,
|
||||
`created` DATE NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`uid`)
|
||||
)
|
||||
);
|
||||
|
||||
CREATE TABLE `userdetail` (
|
||||
`uid` INT(10) NOT NULL DEFAULT '0',
|
||||
@@ -33,6 +33,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
|
||||
)
|
||||
|
||||
如下示例将示范如何使用database/sql接口对数据库表进行增删改查操作
|
||||
```Go
|
||||
|
||||
package main
|
||||
|
||||
@@ -108,7 +109,8 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
通过上面的代码我们可以看出,Go操作Mysql数据库是很方便的。
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
|
||||
);
|
||||
|
||||
看下面Go程序是如何操作数据库表数据:增删改查
|
||||
```Go
|
||||
|
||||
package main
|
||||
|
||||
@@ -104,7 +105,7 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
我们可以看到上面的代码和MySQL例子里面的代码几乎是一模一样的,唯一改变的就是导入的驱动改变了,然后调用`sql.Open`是采用了SQLite的方式打开。
|
||||
|
||||
|
||||
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