我对 sql INSERT INTO 很困惑。我需要加入JOIN吗?或 INNER JOIN 当我要放入不同的表时?
$sqlinsert = "INSERT INTO forum_topic (topic_title, topic_message, thread_id)
VALUES
('$topic','$message','$thread_id')";
我知道这段代码仅适用于一张表,但不适用于两张表。然而,我想要的是$message
到其他表中的 post_message 中。
在forum_topic表中,有post_id、post_message、日期和topic_id强>.
但是有一个 forum_post 表,我想在其中放置 $message
进入forum_post中的post_message。
因此,在 forum_post 表中,有 post_id、post_message、date 和 topic_id 。
那么我需要 JOIN 还是 INNER JOIN ?我不知道应该对它们编码哪一个。
PS:我知道这个问题对你来说很难理解。我多么希望我可以放图片,但我没有 10 个声誉,所以我决定这样做。
最佳答案
您无法使用一个查询插入多个表,但您可以使用事务来确保操作是原子的。
BEGIN;
Your queries here
COMMIT;
当您需要执行多个相互依赖的查询时,其中一些查询可能会导致错误。因此,为了保持数据库的一致性,您希望以全有或全无的方式执行它们(您可以阅读 ACID )。 MySQL 也支持事务,但仅支持其某些存储引擎(例如 InnoDB,但不支持 MyISAM)。
使用的伪代码如下所示。
start transaction
try {
execute query 1
execute query 2
...
commit transaction
catch {
rollback transaction
}
如果您使用 PDO,请查看这些 functions 。
如果是 mysql_query,您可以使用
mysql_query("开始事务");
mysql_query("COMMIT");
mysql_query("ROLLBACK");
关于php - INSERT INTO 不同数据库表中的不同字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21432209/