From b6f08c2c1b64f4d487c702c7af5163e184b079ea Mon Sep 17 00:00:00 2001 From: The Magician Date: Fri, 12 Apr 2024 09:59:09 +0100 Subject: [PATCH] Add main.go --- sevenkeys/main.go | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/sevenkeys/main.go b/sevenkeys/main.go index 0da23b8..8f92c9e 100644 --- a/sevenkeys/main.go +++ b/sevenkeys/main.go @@ -68,10 +68,23 @@ func createProductTable(db *sql.DB) { } } -func insertProduct(db *sql.DB, product Product) { - query := "INSERT INTO Product (Name, Price, Available) VALUES ($1, $2, $3);" +func insertProduct(db *sql.DB, product Product) int64 { + query := "INSERT INTO Product (Name, Price, Available) VALUES (?, ?, ?);" - db.QueryRow(query, product.Name, product.Price, product.Available) + insert, err := db.Prepare(query) + defer insert.Close() + if err != nil { + log.Fatal(err) + } + + result, err := insert.Exec(product.Name, product.Price, product.Available) + rowsAffected, _ := result.RowsAffected() + if err != nil || rowsAffected != 1 { + log.Fatal(err) + } + + insertedRowId, _ := result.LastInsertId() + return insertedRowId } func getAllProducts(db *sql.DB) []Product { @@ -83,16 +96,14 @@ func getAllProducts(db *sql.DB) []Product { } defer rows.Close() - var name string - var price float64 - var available bool + var product Product for rows.Next() { - err := rows.Scan(&name, &price, &available) + err := rows.Scan(&product.Name, &product.Price, &product.Available) if err != nil { log.Fatal(err) } - products = append(products, Product{name, price, available}) + products = append(products, product) } return products