如何在多个表中INSERT数据

时间:2012-09-27 19:10:03

标签: mysql database

我已经看过其他关于SO的问题了,我似乎无法理解这是如何运作的。我正在建立一个枪支的在线商店,用于编目枪支和相关物品。我有两个问题 -

问题1

在这个问题中,我有一个添加产品表格,产品分为两部分;第一个是PRIMARY ATTRIBUTES,第二个是SECONDARY ATTRIBUTES。这是测试形式的SS:

enter image description here

一个例子是一些枪械有八种不同的型号。它可以在桶长,库存样式,子弹口径和其他功能方面有所不同。所以我将在页面顶部显示PRIMARY ATTRIBUTES,在图表中我将列出列出SECONDARY ATTRIBUTES的所有子模型。

PRIMARY ATTRIBUTES是该类别中每件产品肯定都具有的属性。 SECONDARY ATTRIBUTES是某些产品将具有的属性。因此,当表单填写并提交时,我希望数据一次性插入到所有表中。这是我的表格:

enter image description here

问题2

创建我的SECONDARY ATTRIBUTES表的方法我可以一次添加一个属性。在上面的屏幕截图中有八个SECONDARY ATTRIBUTES,我是否会创建一个循环,每次循环插入数据八次?希望这是有道理的,如果不是,我会详细介绍。

注意,我正在使用PHP / MySQL。

修改

我接受了大家的建议,并尝试使用这些建议设计我的数据库。请看一下,看看我做了什么是有效的。我正在学习一个简单的概念 - 一个,一个,一个,多个,多个,多个等等......我看到的唯一可能是一个 - >一个是制造商的产品。这看起来是否正确?我花了很多时间努力使它成为最好的,我感谢大家的反馈/批评。以下是我的新架构:

enter image description here

谢谢,

2 个答案:

答案 0 :(得分:3)

  1. 你不能在“一次性”中插入多个表,但是你可以做下一个最好的事情:将插入视为单个事务的一部分,这样如果出现问题,无论是什么部分已经完成的工作将被退出。

  2. 单个语句可以插入多条记录:http://www.electrictoolbox.com/mysql-insert-multiple-records/

答案 1 :(得分:2)

MySQL支持多行插入:

INSERT INTO table
( col1, col2 )
VALUES
( 1, 'blah'),
( 2, 'foo'),
( 3, 'foobar')

您也可以使用MySQLi或PDO,使用参数绑定,准备插入然后执行多次(http://us3.php.net/manual/en/mysqli.prepare.php)