代码之家  ›  专栏  ›  技术社区  ›  alex

在php中使用mysql查询时,这是不是很糟糕?

  •  4
  • alex  · 技术社区  · 15 年前

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

    我可以…

    • 删除该产品的所有旧行,然后通过字符串循环生成新的 INSERT 查询。但是,如果 插入 失败.
    • 执行 UPDATE 通过每个循环。这个循环目前迭代8个项目,但在将来它可能会达到15个。这么多 更新 听起来这主意不太好。
    • 更改数据库架构,并添加 auto_increment 行的ID。然后先做一个 SELECT ,全力以赴 旧行 ID在变量中,执行一个 插入 ,然后a DELETE WHERE IN SET

    这里的惯例是什么?

    谢谢

    3 回复  |  直到 15 年前
        1
  •  2
  •   bobince    15 年前

    只需进行更新。如果需要的话。15个更新是微不足道的,除非你在每一个访问页面上都做过。

    您不希望为了避免额外的查询而删除/重新插入行。如果您想让一个外键引用您正在更新的表,那么您将无法这样做。

    几乎可以肯定是过早的优化。

        2
  •  2
  •   Dean Harding    15 年前

    十五 UPDATE S并不是那么多。如果你说的是15 一百 那么也许你得多考虑一下你的设计…

        3
  •  0
  •   Michas    15 年前

    最佳实践可能是使用存储过程。
    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