在PHP中使用MySQL查询时这是如此糟糕吗?

时间:2010-04-06 00:30:10

标签: php mysql

我需要根据用户请求更新很多行。这是一个有产品的网站。

我可以......

  • 删除该产品的所有旧行,然后循环遍历字符串,构建新的INSERT查询。但是,如果INSERT失败,则会丢失所有数据。
  • 通过每个循环执行UPDATE。这个循环目前迭代超过8个项目,但将来它可能会达到15个。这很多UPDATE听起来不太好。
  • 更改数据库架构,并向行添加auto_increment个ID。然后首先执行SELECT,在变量中获取所有旧行 ID,执行一个INSERT,然后执行DELETE WHERE IN SET

这里的惯常做法是什么?

由于

3 个答案:

答案 0 :(得分:2)

15 UPDATE s真的不是那么多。如果你在谈论15 ,那么你可能需要多考虑一下你的设计......

答案 1 :(得分:2)

只是做更新。在交易中,如果您需要。 15个更新是花生,除非您在每次访问页面时都这样做。

您不希望删除/重新插入行只是为了避免额外的查询。如果你想要一个引用你正在更新的表的外键,你将无法做到。

几乎肯定是过早的优化。

答案 2 :(得分:0)

最佳做法可能是使用存储过程 http://dev.mysql.com/doc/refman/5.5/en/stored-routines.html
这只是PHP方面的一个命令。其余的将在MySQL服务器上实现。

您还可以尝试使用mysqli :: multi-query一次执行一些查询 http://php.net/manual/en/mysqli.multi-query.php