提交 ba5d160a 编写于 作者: V vCaesar

Fix SQL Error

上级 8d7accd7
......@@ -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的方式打开。
......
......@@ -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()
// 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格式不一样,所以在使用时请注意它们的差异。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册