php - MySQL – 我应该使用 last_insert_id() 吗?或者是其他东西?

标签 php mysql

我有一个表 users,它有一个自动递增的 id 列。对于每个新用户,我基本上需要在三个不同的表中插入三行,分别是 1. user、2. user_content 和 3. user_preferences。插入到 user_contentuser_preferences 中的行由它们的 id 引用,这对应于每个用户的 id(保存在 user)

我该如何实现?

我是否应该先执行 INSERT INTO user 查询,使用 last_insert_id() 获取自动递增的 id,然后再执行其他两个查询INSERT INTO 使用获取的用户 ID 进行查询?或者,是否有更简洁的方法来执行此操作?

(注意:我使用的是 MySQL 和 PHP,如果它们有所不同,我正在使用 bigint 来存储所有三个表中的 id 值。)

谢谢!

最佳答案

您所描述的方法(首先插入 user,获取 last_insert_id() 的结果,然后使用它插入其他两个表)是完全合理;我看不出有什么问题。

从技术上讲,将这三个查询结合起来并使用 LAST_INSERT_ID() MySQL 函数将值插入到其他两个表中可能在技术上是可行的,但是如果没有任何相应的好处,这将明显更加复杂。换句话说,不值得去做。

关于php - MySQL – 我应该使用 last_insert_id() 吗?或者是其他东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554340/

相关文章:

javascript - 使用 AJAX 将变量发布到不同文件上的 php 函数并调用该函数

php - 如何正确删除使用sonata-media-bundle上传的所有图像

mysql - 重复DB值

php - 如果检索的数据已经被清理,是否有必要从 MySQL 服务器转义输出?

php - 每次重新加载时删除 Laravel 的存储/ View 文件

php - 使用用户名和密码字段中输入的任何内容进行脚本登录

mysql - 如何创建 '.sql' 文件

mysql - 返回正确的staff_ids

mysql - 为什么 mariaDB 错误地要求缺少组件

php 命名空间基准测试