php - mySQL/PHP 在行存在时更新,或者在要检查的列不唯一时插入

标签 php mysql insert replace

我已阅读有关 REPLACE 和 INSERT ON DUPLICATE 键查询的信息,虽然我可以看到它们的用处,但它们似乎并不适合我的目的。也许我的数据库设计偏离了应有的方式,但无论哪种方式,我都希望我能让它正常工作。

我正在尝试模拟一个在线商店来自学 mysql 和 php,并且我正在记录一个 session ID,用于将个人的购物车拉回以进行个人访问并尝试将库存写入我所在的购物车有一个问题是试图检查商品是否在购物车中。我希望每个用户的每个项目都是唯一的,但是它不应该对整个表都是唯一的,否则这会阻止多个用户购买相同的项目,不是吗?

到目前为止,我的表格如下所示:

 | Cart ID(key) | USER_ID(fk) | ItemNum | ItemQTY |

我基本上想看看 USER_ID 的购物车中是否已经有 > 0 个 ItemQTY 的 ItemNum。如果他们这样做,我希望 itemQTY 更新为 itemQTY + 无论他们添加多少,如果没有,则插入一个新行。

为了执行此操作,我是否必须在编写之前进行查询?

最佳答案

对于初学者...我认为只运行查询来检查它是否存在可能没问题。然后,当您通常更熟悉 php 和 mysql 时,开始积累您的知识。

其他人可能不同意,但在学习新语言时,我喜欢在使它们变得“完美”之前让它们发挥作用。

关于php - mySQL/PHP 在行存在时更新,或者在要检查的列不唯一时插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546963/

相关文章:

php - 使用数据库实用程序类将数据从 Codeigniter 批量导出到 CSV

php - 使用 html 搜索和 php post 以 WHERE 条件进行选择。返回空白表

python - 将逗号分隔值从 mysql 加载到 python 中的数据框

Mysql INSERT 语法错误 #1064

MySQL While 语句抛出错误并且只插入一条 NULL 记录

c# - 使用 C# (OleDB) 插入带有自动增量主键的新数据行

PHP - 安全地存储外部服务的密码?

php - 动态 Eloquent 查询注入(inject)在 Laravel 中不起作用

mysql - MAMP:由于许多连接错误而被阻止;在/wp-includes/wp-db.php 中使用 'mysqladmin flush-hosts' 解锁

MYSQL - 如何将数据插入另一个服务器数据库表