当前位置: 首页 > 面试题库 >

(mysql,php)如何在插入数据之前获取auto_increment字段值?

公冶高义
2023-03-14
问题内容

我正在将图像文件上传到存储服务器。上传之前,我应该编写文件名,其中包含AUTOINCREMENT VALUE(例如12345_filename.jpg)。

在插入数据库之前如何获得自动增量值?

我只看到一种解决方案

  1. 插入空行
  2. 得到它的自动增量值
  3. 删除该行
  4. 使用第1页中的自动增量值将行插入实际数据

还有其他解决方案吗?

谢谢


问题答案:

完成插入后,自动增量值由数据库本身生成;这意味着您无法在执行实际的插入查询之前获得它。

您提出的解决方案不是经常使用的解决方案,而是:

  • 插入一些半空数据
  • 获取已生成的自动增量值
  • 使用该自动增量值进行计算
  • 更新该行以放置新的/完整的数据-使用查询where子句中前面生成的自动增量update,以标识要更新的行。

当然,为了安全起见,所有这些操作都必须在事务中进行 (以确保“全有或全无”行为)

作为伪代码

begin transaction
insert into your table (half empty values);
$id = get last autoincrement id
do calculations
update set data = full data where id = $id
commit transaction


 类似资料:
  • 我有一个MySQL数据表,详细信息如下: 它正在工作,只是我正在尝试在插入数据后从数据库中获取id号。我该怎么做?

  • 主要内容:使用 MySQLi 和 PDO 向 MySQL 插入数据,实例 (MySQLi - 面向对象),实例 (MySQLi - 面向过程),实例 (PDO)使用 MySQLi 和 PDO 向 MySQL 插入数据 在创建完数据库和表后,我们可以向表中添加数据。 以下为一些语法规则: PHP 中 SQL 查询语句必须使用引号 在 SQL 查询语句中的字符串值必须加引号 数值的值不需要引号 NULL 值不需要引号 INSERT INTO 语句通常用于向 MySQL 表添加新的记录: 学习更多关于

  • 当前,我有一个数组,当通过print_r()输出时,该数组如下所示; 我想将此数据插入到一个表中,每个元素值都属于其各自的字段。 问候。

  • 问题内容: 我有一个输入字段,如下所示: 我想获取输入字段的值并将其分配给会话。如何使用PHP或jQuery做到这一点? 问题答案: 使用PHP 或超全局变量通过HTML标签的名称来检索输入标签的值。 例如,更改表单中的方法,然后通过输入名称回显该值: 使用方法: 要显示值: 使用方法: 要显示值:

  • 我有一个输入字段如下: 我想获取输入字段值,并将其分配给会话。如何使用PHP或jQuery实现这一点?

  • 问题内容: 我想编写一个函数,为插入的行返回一列的值(在这种情况下为自动递增的主键)。 本质上,我想插入一些新数据,生成一个新的主键,然后获取该键。我可以简单地在表中查找最高的主键,但是有可能其他人也可以运行该函数,并且我可以返回错误的键,对吗? 解决这个问题的最简单方法是什么? 问题答案: 正如评论中指出的那样,来自MySQL文档: 该函数不受竞争条件的影响,因为它在特定于您的连接的MySQL中