PHP / MySQL语法插入多个表(多对多结构)

时间:2013-06-12 14:42:00

标签: php mysql insert bulkinsert

我正在尝试将数据从一个表单插入到多个MySQL表中(使用MYSQL语法,虽然我将在某个时候迁移应用程序MYSQLi - 这可能现在不相关,但我想我会说它停止“你应该在MYSQLi 中做这个”不可避免地遵循的评论 - 我知道我应该,我会......很快......但由于我控制的一些原因,我还不能,我们仍然需要这个工作)。

基本上,我正在插入“多对多”表结构(即可以是许多类别的一部分的实例,以及可以包含许多实例的类别)。主表Instances包含所有主要数据(在这种情况下,地图上的位置 - 例如'Acme Cafe','Lakeside Picnic Area'等);另一个表Categories包含instances表中所有地点的所有可能类别 - 例如,'Cafe','Pub','View Point'等;和一个联接表Instance_Categories,将Instances表中的位置连接到Categories表中的类别。

PHP表单包含以下字段:

  • Reference(一个9位数的随机生成的标识符,用于标识Instance_Categories表中包含许多类别的实例)
  • Name(文本框)
  • Address(文本框)
  • Phone(文本框)
  • 每个类别的
  • Tick-box个字段(其中8个)。

Instances表格包含以下列

  • ID(表格中唯一)
  • Reference(请参阅上面的表单输入)
  • Name
  • Address
  • Phone

Categories表格包含以下列

  • ID(表格独有)
  • Category(varchar)
  • Category_Ref(用于标识连接Instances_Categories表中的引用的数字)

Instances_Categories表格包含以下列:

  • ID(表格独有)
  • Instance_Ref(来自上面的表单输入)
  • Category_Ref(与上面的Categories表相关)

如何制定INSERT语句以便将数据插入我的数据库?我可以为每个表格制定一个插入命令,并从同一个“提交”按钮一个接一个地运行它们吗?我将如何获取insert命令以动态地将更多行插入Instances_Categories表,具体取决于选择了多少类别复选框?我正在撕扯我的头发!

1 个答案:

答案 0 :(得分:0)

如果您想要使用一个查询插入多个表,则不能。

您可以使用交易,但只需运行多个查询并将其称为一天。