SQL,如何从以前的INSERT中获取自动ID?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL,如何从以前的INSERT中获取自动ID?相关的知识,希望对你有一定的参考价值。

我正在使用phpSQL并尝试在注册时将用户数据插入两个表中。首先在user_table,第二次进入character_table。我正在使用自动生成user_id链接表格,需要从第一个user_id获取INSERT (into user_table)的值,然后将其添加到character_table中的列。

我尝试了几种方法,这里是我结束的地方(上面定义了$ username,$ email,$ password和$ character);

$sql = "INSERT INTO 
user_table (id, username, email, password)
VALUES ('NULL', '".$username."', '".$email."', '".$password."')

INSERT INTO
character_table (name, id)
VALUES ('".$character."', 'LAST_INSERT_ID()')";"

我希望user_table中的“id”与插入character_table的“id”匹配。

当我运行上述操作时,似乎没有任何事情发生。之前的尝试我总是以id = 0结束。我可以从第一个INSERT中获取ID的正确方法是什么?

答案
  1. 单独运行你的陈述。你将你的插入插入你的user_table,然后抓住id然后将你的插入插入你的character_table
  2. 运行插入后,您可以使用id获取mysql_insert_idNote that on the php webpage详述了mysql_insert_id函数,它被弃用,所有mysql*函数。这导致...
  3. 对于所有神圣的爱,不要将变量直接连接到INSERT语句。如果您还没有切换到mysqli *函数或PDO并使用预准备语句(参数化查询)。如果使用mysql构建应用程序,则意味着您没有参数化您的查询,这意味着您将面临SQL注入攻击的巨大风险。

如果/当您切换到mysqli或PDO函数时,您将找到等效的mysqli_insert_id()(或PDO::lastInsertID())函数

以上是关于SQL,如何从以前的INSERT中获取自动ID?的主要内容,如果未能解决你的问题,请参考以下文章

sql插入数据问题

如何将自动增量 ID 重置为以前的 ID

insert to一条记录到access中,数据库会自动产生一个自增长的ID,我想插入之后返回这个ID,请问如何做?

在sql中执行insert语句之前或之后获取记录的插入id

在控制器中为 INSERT 获取标识值(执行插入命令并在 Sql 中返回插入的 Id)

如何在 php 中使用 prepare 语句获取 insert_id? [复制]