1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| func getOrders(ctx context.Context, db *sql.DB) error { rows, err := db.QueryContext(ctx, "SELECT * FROM orders") if err != nil { return err } defer rows.Close()
for rows.Next() { } return rows.Err() }
func insertUser(ctx context.Context, db *sql.DB, user User) error { stmt, err := db.PrepareContext(ctx, "INSERT INTO users (name) VALUES ($1)") if err != nil { return err } defer stmt.Close()
_, err = stmt.ExecContext(ctx, user.Name) return err }
func getUser(ctx context.Context, db *sql.DB, id string) (*User, error) { rows, err := db.QueryContext(ctx, "SELECT * FROM users WHERE id = $1", id) if err != nil { return nil, err } defer rows.Close()
if !rows.Next() { return nil, ErrUserNotFound } var u User if err := rows.Scan(&u.ID, &u.Name); err != nil { return nil, err } return &u, rows.Err() }
|