n :m relationship 的 PHP 实现

标签 php mysql

实现表的N:M关系USERS (PK:user_id,自动递增INT)和REQUESTS (PK:request_id,自动递增INT),我创建了中间表USERS_GROUPS (PK:两个 FK US_userid、US_requestid 与 USERSREQUESTS 的 PK 一致)。当用户创建新请求时,我必须在 REQUESTS 内创建一条新记录.

INSERT INTO REQUESTS (...) VALUES (...);

同时我想在 USERS_GROUPS 里面创建一条新记录如加入USERS_GROUPSUSERSREQUESTS 。第一个FK的值指向USERS我知道,但是我如何找到指向我刚刚创建的记录的第二个 FK 的值?

换句话说,我想找到我刚刚创建的记录的 request_id 字段的值。这对我来说似乎有点令人困惑,我不知道如何实现它。

INSERT INTO USERS_GROUPS (US_userid,US_request_id) VALUES (...,?????);

这是我创建的第一个严肃的数据库模式,也是我必须管理的第一个 n:m 关系。我的观点正确吗?如果是,我将非常感谢您帮助实现它。如果不是,哪种方法是正确的?

最佳答案

您可以使用last-insert-id检索新创建的 ID。

你用来连接数据库的库通常都有一个函数,比如mysqli_insert_idPDO::lastInsertId .

旁注:因为您正在数据库上执行多个(独立)查询,所以可能有必要将其全部包装在事务中。

关于n :m relationship 的 PHP 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29984554/

相关文章:

mysql - 从两个表中选择第一行

mysql - 如何转置Mysql中的表

php - php中的幂函数计算17^2147482999

php - 使用PHP exec()加速后端的可行性

PHP & MySQL : Get all values from a table?

php - 什么是从 mysql 数据库加载歌曲的 jQuery 音乐播放器?

javascript - 如何使用php将网络摄像头捕获的图像路径存储在mysql数据库中?

php - 从 MySQL 中的单个表中查找与给定结果相似的结果

mysql - 在mysql中按季度显示数据库中的记录

mysql - 如何使用 MYSQL 创建 3 路 LEFT JOIN?