将自动递增的值添加到另一个表

时间:2014-01-17 21:45:24

标签: php mysql mysqli

我有两张桌子:

1)'table'
    'id' - int autoincremented
    'name' - string

2) 'table2'
     'id' - int
     'info' - string

让我们说table中的最后一行有id = 20

在我向table插入5个空行后,最后一行有id = 25

INSERT INTO `table` (`name`)
VALUES ((""),(""),(""),(""),(""))

1)我需要的第一件事就是在将id添加到info之后立即添加5行table2 - s并将空table - s添加到INSERT INTO `table2` (`id`,`info`) VALUES ((21,""),(22,""),(23,""),(24,""),(25,"")) 。这样的事情:

{{1}}

我可以使用一个声明吗?

2)我需要的第二件事是将这些值提取到PHP变量,如数组或字符串(21,22,23,24,25),以便它可以用于进一步的操作。它有可能吗?

2 个答案:

答案 0 :(得分:1)

1-你不能插入带有一个法规的两个表格。你需要两个声明。

2-如果您使用Mysqli或pdo,您已经可以选择将参数绑定到变量。

编辑>

    $stmt->store_result();
    $stmt->bind_result($id); ---------> here you will get $id as variable of those ids

答案 1 :(得分:1)

  1. 不是在一个语句中,而是在一个语句块中 封装在原子操作中。你可以插入 通过将它们放在一个单独的相互依赖的语句 交易。

    更多信息:http://dev.mysql.com/doc/refman/5.0/en/commit.html

  2. 你的第二个问题的解决方案可能涉及放置它     事务,以及返回提取值的一些逻辑     您的应用程序代码,存储在一个存储例程中。

    更多信息:     http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html