php - 在 INSERT (PHP) 中将 2 个不同的查询合并为一个

标签 php mysql sql

我有2张 table ,他们是

name
- fname
- sport_id (FK)

sports
- id (PK)
- football
- basketball

所以我为 INSERT 做了这个

mysqli_query($mysqli, "INSERT INTO name(fname)
    VALUES('$fname')");
mysqli_query($mysqli, "INSERT INTO sprots(football, basketball)
    VALUES('$football','$basketball')");

这样对吗?或者我应该将它们合并为一个查询?关系和id怎么样?

最佳答案

您需要先将数据插入到sports表中,然后从sports表中获取最后插入的id,然后插入到name表中

获取最后插入的id

mysqli_query($mysqli, "INSERT INTO sports(football, basketball) VALUES('$football','$basketball')");

$last_id = mysqli_insert_id($mysqli); 

mysqli_query($mysqli, "INSERT INTO name(fname,sport_id ) VALUES('$fname','$last_id')");

关于php - 在 INSERT (PHP) 中将 2 个不同的查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48031886/

相关文章:

php - PHP 内置的 filter_input 是否正常工作?

mysql - mysql中按时间范围分组查询产生错误

sql - Kohana 查询生成器支持 DATEDIFF?

mysql - 检索订阅者的号码

php - 既然可以在声明时设置变量,为什么还要在 PHP 类的结构中设置变量呢?

php - 调用另一个站点?

php - PHP 5.6u 和 PHP 5.6w 的区别

mysql - 将 Magento 属性值从 mySQL 中的一行复制到另一行

php - MySQL MyISAM/InnoDB 更新不是跨两个连接的原子更新(强制写入?)

sql - BigQuery COALESCE/IFNULL 类型与文字不匹配