插入两个相关表格

时间:2015-01-16 08:24:31

标签: php mysql

tbl_account
username | password | status

tbl_data
username | name | address | phone

如何用php将数据插入两个表? 我尝试了查询

INSERT INTO tbl_account(username, password, status)
OUTPUT INSERTED.'bobo', 'Bobo Ali','Markt St. 26', '0979877'
INTO tbl_data(username, name, address, phone)
VALUES  ('bobo','bobo123','manager');

但它根本不起作用。这个过程很成功,但表格仍然是空的。

4 个答案:

答案 0 :(得分:2)

您需要单独的查询才能将相同的数据插入多个表格。

如果您遇到问题,过程很简单:

  1. 使用查询将数据插入第一个表
  2. 如果您使用的是MySQL API,请使用mysqli_free_result()(或mysql_free_result())释放最后一个结果。
  3. 重复使用您在步骤1中使用的相同查询,将数据插入第二个表格
  4. 代码:

    <?php
    
    INSERT INTO tbl_account(username, password, status)
    VALUES ('bobo', 'Bobo Ali','Markt St. 26', '0979877');
    
    // Free the result here
    
    INSERT INTO tbl_data(username, name, address, phone)
    VALUES  ('bobo','bobo123','manager');
    
    // Free the result again, so you can use the query again if needed
    
    ?>
    

答案 1 :(得分:1)

使用交易。像示例中那样更改数据库并生成userid主键(自动增量)

tbl_account
userid | username | password | status

tbl_data
userid | username | name | address | phone

BEGIN;
INSERT INTO tbl_account(username, password, status)
  VALUES ('bobo','bobo123','manager');
INSERT INTO  tbl_data(username, name, address, phone)
  VALUES(LAST_INSERT_ID(),'bobo', 'Bobo Ali','Markt St. 26', '0979877');
COMMIT;

如果你想要一个php-MySQL(事务)实现的例子,请查看这个例子。 PHP + MySQL transactions examples

答案 2 :(得分:0)

您只能进行2次单独查询

INSERT INTO tbl_account(username, password, status)
 VALUES ('bobo', 'Bobo Ali','Markt St. 26', '0979877)'

Insert INTO tbl_data(username, name, address, phone)
VALUES  ('bobo','bobo123','manager');

答案 3 :(得分:0)

是的,您需要有两个单独的查询。 但答案有点误导,因为表tbl_account只有三列,而提供的代码插入四列的值。

所以它应该是:

INSERT INTO tbl_account(username, password, status)
VALUES  ('bobo','bobo123','manager');

INSERT INTO tbl_data(username, name, address, phone)
VALUES ('bobo', 'Bobo Ali','Markt St. 26', '0979877');

或者您可以编写这两个插入的程序。