Php 插入到不同数据库表中的不同字段中

Php 插入到不同数据库表中的不同字段中,php,mysql,sql,Php,Mysql,Sql,我对sql INSERT INTO感到非常困惑。我需要加入吗?或者当我要放入不同的表中时,内部联接 $sqlinsert = "INSERT INTO forum_topic (topic_title, topic_message, thread_id) VALUES ('$topic','$message','$thread_id')"; 我知道这段代码只适用于一个表,但不适用于两个表。但是,我想要的是将$message放入另一个表中的post_message 在论坛主题表中,有帖子id

我对sql INSERT INTO感到非常困惑。我需要加入吗?或者当我要放入不同的表中时,内部联接

$sqlinsert = "INSERT INTO forum_topic (topic_title, topic_message, thread_id) 
VALUES 
('$topic','$message','$thread_id')";
我知道这段代码只适用于一个表,但不适用于两个表。但是,我想要的是将
$message
放入另一个表中的post_message

论坛主题表中,有帖子id帖子消息日期主题id

但是有一个论坛帖子表,我想把
$message
放到论坛帖子帖子

因此,在论坛帖子表中,有帖子id帖子消息日期主题id

那么我需要加入还是内部加入?我不知道该给他们编哪一个


我知道这个问题对你来说很难理解。我多么希望我能把图像,但我没有10个声誉,所以我决定这样做

不能用一个查询插入多个表,但可以使用事务来确保操作是原子的

BEGIN;
Your queries here
COMMIT;
当您需要执行多个相互依赖的查询时,其中一些查询可能会导致错误。因此,为了保持数据库的一致性,您希望将它们作为all或none执行(您可以阅读)。 MySQL也支持事务,但只支持某些存储引擎(例如InnoDB,但不支持MyISAM)

使用的伪代码如下所示

start transaction
try {
  execute query 1
  execute query 2
  ...
  commit transaction
catch {
  rollback transaction
}
如果您正在使用PDO,请查看这些。 对于mysql_查询,您可以使用
mysql_查询(“启动事务”)
mysql_查询(“提交”)

mysql_查询(“回滚”)

您不使用联接。对每个表使用单独的查询

insert into table1
(field1, field2, etc)
values
(value1, value2, etc);

insert into table2
(field1, field2, etc)
values
(value1, value2, etc);

要插入多个表,必须使用多个查询

例如:

$sqlinsert1 = "INSERT INTO forum_topic1 (topic_title1, topic_message1, thread_id1) 
VALUES 
('$topic1','$message1','$thread_id1')";

$sqlinsert2 = "INSERT INTO forum_topic2 (topic_title2, topic_message2, thread_id2) 
VALUES 
('$topic2','$message2','$thread_id2')";
联接用于选择查询

连接示例:

$sqlselect = "SELECT * FROM forum_topic 
Join table2 on thread_id = table2id
WHERE topic_title = $topic";

本周,我看到了许多关于用一条insert语句同时将数据插入两个表的问题,这是不可能的。你为什么不先仔细阅读mysql并提问呢?我试图在那里发表评论,不幸的是,我没有任何声誉可以在那里发表评论。反正跟我的不一样,你能解释清楚一点吗?我很不明白你在说什么。
$sqlinsert=“插入论坛主题(主题标题、线程id)值(“$topic”、“线程id”)插入论坛帖子(帖子消息)值(“$message”)我这样做了,但效果不太好。请注意,此论坛主题与论坛帖子(如主题id)有连接。我该怎么办?您必须获取从第一次插入中生成的主题id,并在第二次插入中使用它。