我有一些问题:“在不同的表中插入数据但具有相同的id(auto_increment)”
这是我的两次表
学生
----------------------
id |名字|类|
----------------------
得分
--------------------------------------------- <无线电通信/> id |数学|英语|物理|年|
---------------------------------------------
< / p>
我有一些数据如:
John,A,90,80,70,2015
John,A,70,90,50,2016
我想要结果像:
学生
----------------------
id |名字|类|
----------------------
1 |约翰| A |
----------------------
得分
--------------------------------------------- <无线电通信/> id |数学|英语|物理|年|
---------------------------------------------
< / p>1 | 90 | 80 | 70 | 2015
1 | 70 | 90 | 50 | 2016
因为学生的“id”表使用Auto_increment
如果我希望在插入数据时两次表具有相同的id
我可以使用哪种SQL?
(我认为mysql_insert_id()
是解决方案,但不确定......)
感谢帮助!!
答案 0 :(得分:1)
我希望您正在寻找这样的查询。首先使用PDO或mysqli与数据库进行交互。我使用PDO。
function my_select($query)
{
global $dbserver,$dbuser,$dbpwd,$dbname;
$dbh= new PDO('mysql:host='.$dbserver.';dbname='.$dbname.'',$dbuser,$dbpwd);
$rs=$dbh->prepare($query); //prepared statements have numerous advantages over executing sql statements directly
$rs->execute();
return $db->lastInsertId(); //returns last inserted id of current db connection
}
查询可以是,
$l_id=my_select(query1) // query to insert into student
$query2="INSERT INTO score (id,...) VALUES ('".$l_id."',...)" ;
my_select(query2);
答案 1 :(得分:0)
如果您在两个表中使用自动增量ID,则需要在studentid
表中添加一列以供Insert into student (name) values ('test');
参考。例如:
mysql_insert_id();
比使用:
Insert into score (yourcolumns, studentid) values (yourcolumnvalue, last_inserted_id);
最后将数据插入得分表:
mysql_*
旁注:而不是mysqli_*
函数使用mysql_*
或PDO因为{{1}}已被弃用,在PHP 7中不可用。