Maison  >  Article  >  base de données  >  Comment développer une fonction de panier simple en utilisant MySQL et le langage Go

Comment développer une fonction de panier simple en utilisant MySQL et le langage Go

王林
王林original
2023-09-21 12:13:41857parcourir

Comment développer une fonction de panier simple en utilisant MySQL et le langage Go

Comment développer une fonction de panier d'achat simple en utilisant MySQL et le langage Go

Avec l'essor du commerce électronique, le panier d'achat est devenu un module fonctionnel nécessaire. Cet article expliquera comment utiliser le langage MySQL et Go pour développer une fonction de panier d'achat simple et fournira des exemples de code spécifiques.

1. Préparation
Tout d'abord, nous devons créer une base de données MySQL pour stocker les informations relatives au panier de l'utilisateur. Créez une base de données nommée "shopping_cart" dans MySQL et créez-y une table de données nommée "cart_items". La structure de la table "cart_items" est la suivante :

CREATE TABLE cart_items (

id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
product_id INT NOT NULL,
quantity INT NOT NULL,
price DECIMAL(10, 2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

Parmi eux, le champ id est une clé primaire auto-incrémentée, le champ user_id est utilisé pour stocker l'ID utilisateur, le product_id Le champ est utilisé pour stocker l'ID du produit et le champ Quantité est utilisé pour stocker la quantité d'achat, le champ Prix est utilisé pour stocker le prix du produit et le champ Created_at est utilisé pour stocker l'heure de création.

2. Exemple de code de langage Go
Ce qui suit est un exemple de code d'une fonction de panier simple écrite en langage Go :

package main

import (

"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"

)

type CartItem struct {

ID       int
UserID   int
ProductID int
Quantity int
Price    float32
CreatedAt string

}

func main() {

// 连接数据库
db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/shopping_cart")
checkError(err)
defer db.Close()

// 创建购物车项
item := &CartItem{
    UserID:   1,
    ProductID: 1,
    Quantity: 2,
    Price:    19.99,
}
createCartItem(db, item)

// 获取购物车项列表
items, err := getCartItems(db, item.UserID)
checkError(err)
for _, item := range items {
    fmt.Println(item)
}

}

func createCartItem(db sql.DB, item CartItem) {

stmt, err := db.Prepare("INSERT INTO cart_items(user_id, product_id, quantity, price) VALUES(?, ?, ?, ?)")
checkError(err)
defer stmt.Close()

_, err = stmt.Exec(item.UserID, item.ProductID, item.Quantity, item.Price)
checkError(err)

}

func getCartItems(db *sql.DB, userID int) ([]CartItem, erreur) {

rows, err := db.Query("SELECT * FROM cart_items WHERE user_id = ?", userID)
if err != nil {
    return nil, err
}
defer rows.Close()

var items []CartItem
for rows.Next() {
    var item CartItem
    err := rows.Scan(&item.ID, &item.UserID, &item.ProductID, &item.Quantity, &item.Price, &item.CreatedAt)
    if err != nil {
        return nil, err
    }
    items = append(items, item)
}
return items, nil

}

func checkError(err error) {

if err != nil {
    panic(err)
}

}
Dans le code ci-dessus, nous utilisons d'abord la fonction sql.Open pour nous connecter à la base de données MySQL. Ensuite, nous définissons une structure CartItem pour représenter les informations sur l’article du panier. La fonction createCartItem permet de créer un article de panier et de l'insérer dans la base de données. La fonction getCartItems est utilisée pour interroger la liste des articles du panier de l'utilisateur spécifié. Enfin, nous démontrons la fonction de panier en appelant les fonctions createCartItem et getCartItems.

3. Résumé
Grâce aux étapes ci-dessus, nous avons développé avec succès une fonction de panier d'achat simple en utilisant MySQL et le langage Go, et avons fourni des exemples de code spécifiques. Cet exemple peut aider les développeurs à mieux comprendre comment utiliser le langage MySQL et Go pour implémenter la fonction de panier d'achat, ainsi qu'à étendre et optimiser la fonction en fonction des besoins réels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn