Mysql将数据从数组插入多个表

时间:2012-02-14 08:02:23

标签: php mysql database zend-framework

enter image description here

 Tags array(11) {
  ["album"] => string(17) "Away From The Sun"
  ["artist"] => string(12) "3 Doors Down"
  ["bitrate"] => int(256000)
  ["title"] => string(16) "Ticket to Heaven"
  ["filename"] => string(23) "04 Ticket To Heaven.mp3"
  ["format"] => string(3) "mp3"
  ["play_time"] => float(207.5950625)
  ["genre"] => string(11) "Alternative"
  ["year"] => string(4) "2002"
  ["track"] => string(1) "4"
  ["art"] => string(21) "Away From The Sun.jpg"
}

我需要帮助从这个数组获取数据并用数据填充这些表并保持关系。
我一直从这些表中提取数据,然后用已知数据构建它们。
在这种情况下,在解析id3标签之前,数据对我来说是不可知的 所有3个表都在'id'上自动递增 我通常在Zend Framework中工作,所以ZF中的答案真的很有用,但php和sql几乎一样好 我发现一个问题SQL Insert with data from multiple tables似乎解决了这个问题,但我没有sql来理解答案。
链接表会有帮助吗?

P.S。我知道图中的关系线是不正确的。

1 个答案:

答案 0 :(得分:1)

由于关系取决于自动增量ID,因此最好的做法是插入艺术家表格,然后调用$artist_id = mysql_insert_id()以获取新的ID号。然后,您可以插入相册并调用与$album_id = mysql_insert_id()`相同的函数。最后使用您刚刚检索到的ID插入曲目。

您可以确保没有没有艺术家的专辑或没有专辑的曲目,并且您需要插入专辑和曲目而无需创建新的艺术家或专辑,所以这很容易就足够了。

相关问题