mysql 重复下单_MYSQL实现防止添加购物车重复的代码实例

在向mysql中插入数据的时候最需要注意的就是防止重复发添加数据,下面这篇文章主要给大家介绍了关于MYSQL如何实现添加购物车的时候防止重复添加的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。

前言

最近因为工作的原因,在做APP购物车下单支付这一块儿.被测试提了一个bug,当点加入购物车点的比较快的时候,同一个商品在购物车中出现了两个.

因为加入购物车的时候,分2步, 第1步是先判断要加入购物车的商品是不是已经在购物车当中了,如果在的话就在原来的数量基础上做加一操作.如果不在再插件.

因为两步不是原子的操作,所以就出现了多线程的安全问题,下面话不多说了,来跟随小编一起来看看详细的解决过程吧,会对你有一定的帮助的。

MySQL insert有一个比较高级的操作

示例代码:

INSERT INTO t_xs_shopping_cart (

user_id,

shop_id,

commodity_id,

quantity

)

VALUES

(71, 67, 140201057403511024, 1) ON DUPLICATE KEY UPDATE quantity = quantity + 1

当唯一键约束起作用的时候,会走update语句,把数量加1

总结

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如下是一个基于PHP的微信小程序购物实例代码,用于展示购物的功能: 1. 创建数据库: 首先,需要创建一个数据库来存储商品和购物相关的信息。可以使用MySQL或其他数据库管理软件来创建一个数据库,并创建以下两个表格: - 商品表(goods):包含字段id、name、price等用于存储商品信息的字段。 - 购物表(cart):包含字段id、user_id、goods_id、quantity等,用于存储购物信息的字段。 2. PHP后端代码: 接下来,需要创建一个用于处理微信小程序购物相关操作的PHP后端代码。可以使用某个PHP开发框架(如Laravel)或者纯PHP来实现,以下是一个简的示例代码: ```php // 引入数据库连接 require_once 'db.php'; // 获取购物列表 function getCartList($user_id) { global $dbh; $query = 'SELECT cart.id, goods.name, goods.price, cart.quantity FROM cart INNER JOIN goods ON cart.goods_id = goods.id WHERE cart.user_id = :user_id'; $stmt = $dbh->prepare($query); $stmt->bindParam(':user_id', $user_id); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); return $result; } // 添加商品到购物 function addToCart($user_id, $goods_id, $quantity) { global $dbh; $query = 'INSERT INTO cart(user_id, goods_id, quantity) VALUES(:user_id, :goods_id, :quantity)'; $stmt = $dbh->prepare($query); $stmt->bindParam(':user_id', $user_id); $stmt->bindParam(':goods_id', $goods_id); $stmt->bindParam(':quantity', $quantity); $stmt->execute(); return $dbh->lastInsertId(); } // 从购物中移除商品 function removeFromCart($cart_id) { global $dbh; $query = 'DELETE FROM cart WHERE id = :cart_id'; $stmt = $dbh->prepare($query); $stmt->bindParam(':cart_id', $cart_id); $stmt->execute(); return $stmt->rowCount(); } // 示例代码的使用 $user_id = 1; $goods_id = 2; $quantity = 3; // 添加商品到购物 $cart_id = addToCart($user_id, $goods_id, $quantity); echo '已添加购物,cart_id为: ' . $cart_id; // 获取购物列表 $cartList = getCartList($user_id); echo json_encode($cartList); // 从购物中移除商品 $deletedRows = removeFromCart($cart_id); echo '已从购物中移除商品,删除的行数为: ' . $deletedRows; ``` 这个示例代码提供了获取购物列表、添加商品到购物以及从购物中移除商品的基本功能。你可以根据具体需求进行修改和扩展。提供的代码只是一个简的示例,实际应用中可能需要进行额外的安全性和错误处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值