MySQL:在不同的表中插入数据但具有相同的id

时间:2016-01-02 14:13:56

标签: mysql database

我有一些问题:“在不同的表中插入数据但具有相同的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()是解决方案,但不确定......)

感谢帮助!!

2 个答案:

答案 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中不可用。