Fix SQL Error
This commit is contained in:
@@ -23,7 +23,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
|
|||||||
`departname` VARCHAR(64) NULL DEFAULT NULL,
|
`departname` VARCHAR(64) NULL DEFAULT NULL,
|
||||||
`created` DATE NULL DEFAULT NULL,
|
`created` DATE NULL DEFAULT NULL,
|
||||||
PRIMARY KEY (`uid`)
|
PRIMARY KEY (`uid`)
|
||||||
)
|
);
|
||||||
|
|
||||||
CREATE TABLE `userdetail` (
|
CREATE TABLE `userdetail` (
|
||||||
`uid` INT(10) NOT NULL DEFAULT '0',
|
`uid` INT(10) NOT NULL DEFAULT '0',
|
||||||
@@ -33,6 +33,7 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
|
|||||||
)
|
)
|
||||||
|
|
||||||
如下示例将示范如何使用database/sql接口对数据库表进行增删改查操作
|
如下示例将示范如何使用database/sql接口对数据库表进行增删改查操作
|
||||||
|
```Go
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
@@ -108,7 +109,8 @@ Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持data
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
通过上面的代码我们可以看出,Go操作Mysql数据库是很方便的。
|
通过上面的代码我们可以看出,Go操作Mysql数据库是很方便的。
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
|
|||||||
);
|
);
|
||||||
|
|
||||||
看下面Go程序是如何操作数据库表数据:增删改查
|
看下面Go程序是如何操作数据库表数据:增删改查
|
||||||
|
```Go
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
@@ -104,7 +105,7 @@ Go支持sqlite的驱动也比较多,但是好多都是不支持database/sql接
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
我们可以看到上面的代码和MySQL例子里面的代码几乎是一模一样的,唯一改变的就是导入的驱动改变了,然后调用`sql.Open`是采用了SQLite的方式打开。
|
我们可以看到上面的代码和MySQL例子里面的代码几乎是一模一样的,唯一改变的就是导入的驱动改变了,然后调用`sql.Open`是采用了SQLite的方式打开。
|
||||||
|
|
||||||
|
|||||||
18
zh/05.4.md
18
zh/05.4.md
@@ -38,12 +38,14 @@ Go实现的支持PostgreSQL的驱动也很多,因为国外很多人在开发
|
|||||||
|
|
||||||
看下面这个Go如何操作数据库表数据:增删改查
|
看下面这个Go如何操作数据库表数据:增删改查
|
||||||
|
|
||||||
package main
|
```Go
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
_ "https://github.com/lib/pq"
|
_ "github.com/lib/pq"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -58,10 +60,15 @@ package main
|
|||||||
checkErr(err)
|
checkErr(err)
|
||||||
|
|
||||||
//pg不支持这个函数,因为他没有类似MySQL的自增ID
|
//pg不支持这个函数,因为他没有类似MySQL的自增ID
|
||||||
id, err := res.LastInsertId()
|
// id, err := res.LastInsertId()
|
||||||
checkErr(err)
|
// 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")
|
stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")
|
||||||
@@ -113,6 +120,7 @@ package main
|
|||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
```
|
||||||
|
|
||||||
从上面的代码我们可以看到,PostgreSQL是通过`$1`,`$2`这种方式来指定要传递的参数,而不是MySQL中的`?`,另外在sql.Open中的dsn信息的格式也与MySQL的驱动中的dsn格式不一样,所以在使用时请注意它们的差异。
|
从上面的代码我们可以看到,PostgreSQL是通过`$1`,`$2`这种方式来指定要传递的参数,而不是MySQL中的`?`,另外在sql.Open中的dsn信息的格式也与MySQL的驱动中的dsn格式不一样,所以在使用时请注意它们的差异。
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user