gpt4 book ai didi

php - MySql 和在链接表中插入数据,如何?

转载 作者:行者123 更新时间:2023-11-29 05:46:57 25 4
gpt4 key购买 nike

在 MySql(版本 4)中从 PHP thtree Inserts 写入并确保我们可以正确链接表的技巧是什么。

[Table1]-[LinkTable]-[Table2]

在 PHP 代码中,我创建了一个 Insert,它在表 1 中添加了 1 行,另一个 Insert 在表 2 中添加了另一行。我得到了两行 PK(主键)和两个 SELECT,它们返回了最后一行每张 table 。通过这种方式,我从表 1 和表 2 中获取 PK(自动递增)并将其插入到链接表中。

问题是它不是原子的,现在我得到了很多交易,但它没有正确链接。

如何在 MySQL 4 中的两个保留数据的表之间建立链接?我不能使用任何存储过程。

最佳答案

好吧,如果您能够使用 InnoDB 表(而不是 MyISAM),那么您就可以使用事务。这是一些粗略的代码

<?php

// Start a transaction
mysql_query( 'begin' );

// Execute the queries
if ( mysql_query( "insert into table_one (col1, col2) values('hello','world')" ) )
{
$pk1 = mysql_insert_id();
if ( mysql_query( "insert into table_two (col1, col2) values('foo', 'bar')" ) )
{
$pk2 = mysql_insert_id();
$success = mysql_query( "insert into link_table (fk1, fk2) values($pk1, $pk2)" );
}
}

// Complete the transaction
if ( $success )
{
mysql_query( 'commit' );
} else {
mysql_query( 'rollback' );
}

如果您不能使用 InnoDB 表,那么我建议查看 Unit Of Work模式。

关于php - MySql 和在链接表中插入数据,如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/418183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com