Php 插入到不同数据库表中的不同字段中
我对sql INSERT INTO感到非常困惑。我需要加入吗?或者当我要放入不同的表中时,内部联接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
$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,并在第二次插入中使用它。