【问题标题】:PHP backend saves data from other sessionPHP后端保存来自其他会话的数据
【发布时间】:2013-07-30 12:15:10
【问题描述】:

我已经实现了一个包含多个用户的 PHP 网页,同时使用该应用程序。在应用程序中,用户可以填写一些输入字段并将数据发送到后端。后端进行一些计算并将其发送到 MySQL 表。问题是当 2 个或更多用户同时使用该应用程序时,它会将所有用户输入数据保存到数据库中。这是一个例子:

用户 1 输入:“这应该写入数据库”

用户 2 输入:“这不应该被写入数据库:

当用户 1 按下提交按钮时。然后将数据发送到后端文件。然后后端文件将数据写入 MySQL 表中。问题出在这里:虽然用户 2 没有按下提交按钮,但用户 1 和用户 2 的输入都写入了数据库。

关于如何解决这个问题的任何想法?

【问题讨论】:

  • 发生了其他事情.. 不发送数据就无法接收数据..
  • 你能给我们看一些代码看看哪里出错了吗?

标签: php javascript mysql session


【解决方案1】:

在写入数据库之前不要使用文件。直接写入数据库。 MySQL 将为您处理并发和锁定。

如果由于某种原因您不想在写入数据库时​​阻塞,您可以尝试INSERT DELAYED,具体取决于您的表类型。也可以使用其他排队系统。

【讨论】:

    【解决方案2】:

    您可以简单地将所有用户的数据存储在他们的 $_SESSION 中,并且只有在用户单击其保存按钮后,您才能将该用户的数据保存到 DB。

    如果您想存储一些临时的每用户数据,请改用会话。
    它们正是为此目的而设计的。

    【讨论】:

    • 你可以在 MySQL 中存储任何你想要的东西,无论是否是临时的。这是否有意义取决于具体情况,Cemil 还没有告诉我们足够多的决定。会话用于会话级别的数据,而不仅仅是临时的废话。
    • 从我读到的,看起来他将计算结果存储到数据库中,并为所有用户使用同一个地方。如果是这样,那么使用 session 代替会很好地解决问题。
    猜你喜欢
    • 2015-02-21
    • 1970-01-01
    • 2010-09-14
    • 2023-03-14
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    相关资源
    最近更新 更多