1
0
mirror of https://github.com/DATA-DOG/go-sqlmock.git synced 2025-06-19 00:07:38 +02:00
Files
examples
basic
basic.go
basic_test.go
blog
orders
doc.go
.gitignore
.travis.yml
LICENSE
README.md
argument.go
argument_test.go
driver.go
driver_test.go
expectations.go
expectations_before_go18.go
expectations_go18.go
expectations_go18_test.go
expectations_test.go
result.go
result_test.go
rows.go
rows_go18.go
rows_go18_test.go
rows_test.go
sqlmock.go
sqlmock_go18.go
sqlmock_go18_test.go
sqlmock_test.go
statement.go
statement_test.go
stubs_test.go
util.go
util_test.go
go-sqlmock/examples/basic/basic.go
gedi 32a1b9d93f update readme and add example
* dcca987 add an old example and a basic one
2015-08-28 10:26:55 +03:00

41 lines
760 B
Go

package main
import "database/sql"
func recordStats(db *sql.DB, userID, productID int64) (err error) {
tx, err := db.Begin()
if err != nil {
return
}
defer func() {
switch err {
case nil:
err = tx.Commit()
default:
tx.Rollback()
}
}()
if _, err = tx.Exec("UPDATE products SET views = views + 1"); err != nil {
return
}
if _, err = tx.Exec("INSERT INTO product_viewers (user_id, product_id) VALUES (?, ?)", userID, productID); err != nil {
return
}
return
}
func main() {
// @NOTE: the real connection is not required for tests
db, err := sql.Open("mysql", "root@/blog")
if err != nil {
panic(err)
}
defer db.Close()
if err = recordStats(db, 1 /*some user id*/, 5 /*some product id*/); err != nil {
panic(err)
}
}