gpt4 book ai didi

php - PHP/MySQL并行插入的正确处理

转载 作者:行者123 更新时间:2023-11-29 11:04:45 25 4
gpt4 key购买 nike

我有一个 PHP 应用程序,它从外部源接收信息,并将数据保存到 MySQL。

算法非常简单。发送的数据是一个字符串,其工作方式如下:

  1. 接收$data中的数据。例如:$data = "info"
  2. 检查数据库中“info”是否存在。例如:从 data="info"的表中选择 count(*)
  3. 如果“info”存在,则退出
  4. 否则在数据库中插入“info”并退出。

当页面有多个并行请求时,会出现一些重复。数据可以发送两次或多次,但我们只需要保存一次。

原因是步骤2和步骤3之间存在时间间隔,数据仍未插入,因此两个实例可以同时插入。

在 PHP 中处理这个问题的正确方法是什么?

(这个想法不是向MySQL添加唯一索引,我知道它会起作用,但会抛出错误。而且发送的数据很长,索引有限制。)

最佳答案

您可以在单个查询中执行测试和INSERT:

INSERT INTO yourTable (columnName)
SELECT :data
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM yourTable WHERE columnName = :data)

关于php - PHP/MySQL并行插入的正确处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41602350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com