简体   繁体   English

SQL从一个表插入ID到另一个表中的条目

[英]Sql insert id from one table to entry in another

I have two tables in my database. 我的数据库中有两个表。 When I insert record to first table I need to take id that automatically generate by Mysql and add it to a new record in 2nd table. 当我在第一个表中插入记录时,我需要获取由Mysql自动生成的id ,并将其添加到第二个表中的新记录中。

So I need to take id from this record: 因此,我需要从此记录中获取id

$sql = "INSERT INTO movies (title, year, format);

and put it inside this record: 并将其放入此记录中:

$sql = "INSERT INTO actors(name, last_name, movi_id);
-----------------------------------------------^
                                              HERE

Use below in-built PHP function for getting id from your last Insert Query: 使用下面的内置PHP函数从上一次插入查询中获取ID:

mysqli_insert_id();

Your code must be like below to resolve your issue: 您的代码必须如下所示才能解决您的问题:

$sql = "INSERT INTO movies (title, year, format) VALUES ($title, $year, 
$format)";    
$movi_id = mysqli_insert_id();
$sql = "INSERT INTO actors(name, last_name, movi_id) VALUES ($name, 
$last_name, $movi_id)";

It's better if you can write above query in Prepared Statements to make it more secure : 最好在Prepared Statements中编写上述查询,以使其更加安全

// prepare and bind Movies Query
$queryMovies = $conn->prepare("INSERT INTO movies (title, year, format) 
VALUES (?, ?, ?)");
$queryMovies->bind_param("sss", $title, $year, $format);

// execute Movies Query
$queryMovies->execute();

// Get last inserted Id of Movies Query
$movi_id = $queryMovies->insert_id;

// prepare and bind Actors Query
$queryActors = $conn->prepare("INSERT INTO actors (name, last_name, movi_id) 
VALUES (?, ?, ?)");
$queryActors->bind_param("sss", $name, $last_name, $movi_id);

// execute Actors Query
$queryActors->execute();

// Close Connections
$queryMovies->close();
$queryActors->close();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM