php - MySQL 不允许具有 2 个与另一行相同的列值的行

标签 php mysql

这是我的 MySQL 表:

enter image description here

  • 左列自动递增。
  • 中间一列是用户的 ID#。
  • 右栏是他们喜欢的帖子的 ID#。

我像这样向表中插入数据:

$stmt = $db->prepare("INSERT INTO likes (user_id,post_id) VALUES (?,?)");
$stmt->execute(array($_SESSION['user'],$_POST['id']));

这工作正常,但如您所见,MySQL 表有两个相同的行(id 的 3 和 4),它们的 user_id 均为 5,post_id 为 196。换句话说,我的 MySQL 表记录了具有 id 的用户= 5 喜欢 id = 196 的帖子两次。我如何禁止有两行具有相同 user_id 的相同 post_id 的情况

最佳答案

你需要设置一个unique constraint在 user_id 和 post_id 列上

关于php - MySQL 不允许具有 2 个与另一行相同的列值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5526283/

相关文章:

php - css 没有完全应用于 php 函数

php - 如果没有找到字段,则创建新字段

mysql - 跨层次表查询 SQL

php - 将用户信息插入数据库php和mysql

php - 我在数据库中有一个表,我想在其中获取列的最后一个值

javascript - DataTables(jQuery 的表格插件)在导航离开和返回 DataTable 时从上次中断的地方继续

php - 连接到 mysql 数据库,但表中没有数据回显到屏幕

mysql - opensips添加用户错误

mysql - 为什么 MySQL 在这种情况下使用文件排序?

mysql - 我将如何在 SQL/SQLALCHEMY 中设计相互依赖的外键