我需要用PHP更新MySQL中的两个表。第二个表需要在第一个表中插入行的ID。
目前我有一些PHP代码为数组中的每个项循环遍历此过程:
由于进行了多次数据库调用,因此效率非常低。我宁愿将数据存储在两个数组中,每个表一个,然后在循环完成时批量插入它们。问题是我需要先获取第一个表中行的ID才能执行此操作。
这是我经常遇到的一个问题。这样做的最有效/“最佳实践”方式是什么?
谢谢
答案 0 :(得分:0)
创建用于在一个服务器调用中插入整个层次结构的存储过程。将所有父子记录作为XML提供并解析它/在过程中插入记录(afaik MySql应该具有类似于MS SQL的XML函数)。这将导致相同数量的INSERT语句,但它们将在服务器端执行,这将提高性能。 E.g。
exec MySp @myHierarchy = '<Recs><Parent Name="P1"><Child Name="C1" /><Child Name="C2"/></Parent></Recs>'