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

问题描述 投票:0回答:1

我正在使用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的正确方法是什么?

php sql insert auto-increment
1个回答
1
投票
  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())函数

© www.soinside.com 2019 - 2024. All rights reserved.