Golang database/sql.Prepare function examples

package database/sql

Prepare creates a prepared statement for use within a transaction.

The returned statement operates within the transaction and can no longer be used once the transaction has been committed or rolled back.

To use an existing prepared statement on this transaction, see Tx.Stmt.

Golang database/sql.Prepare function usage examples

Example 1:

 createCategory = "INSERT INTO BlogCategories (name,slug,active) VALUES (?,?,?)"

 func (c *Category) Create() error {
  db, err := sql.Open("mysql", database.ConnectionString())
  if err != nil {
 return err
  }
  defer db.Close()
  tx, err := db.Begin()
  if err != nil {
 return err
  }
  stmt, err := tx.Prepare(createCategory)
  res, err := stmt.Exec(c.Name, c.Slug, c.Active)
  if err != nil {
 tx.Rollback()
 return err
  }
  id, err := res.LastInsertId()
  c.ID = int(id)
  if err != nil {
 tx.Rollback()
 return err
  }
  tx.Commit()
  return nil
 }

Example 2:

 stmt, err := tx.Prepare(`insert or replace into plusplus (nick, score) values (?, ?)`)

 if err != nil {
 fmt.Printf("Database error: %v\n", err)
 return
 }

Reference :

http://golang.org/pkg/database/sql/#Tx.Prepare

Advertisement