gpt4 book ai didi

php - 使用 PDO 在 Mysql 中更新多个值的最有效方法

转载 作者:行者123 更新时间:2023-11-29 06:56:48 24 4
gpt4 key购买 nike

鉴于这种类型的用户表结构,您在表中存储许多用户值(例如电话号码、偏好、联系信息):

Table: User ID | Key | Value

$values = [
1 => 'A value for key 1',
2 => 'Hello',
8 => 'Meow',
]

// Update values
$stmt = $pdo_db->prepare('
INSERT INTO table (UID, KEY, VALUE)
VALUES (:UID, :KEY, :VALUE)
ON DUPLICATE KEY UPDATE VALUE = :VALUE');

foreach ($values as $key => $value) {
$stmt->bindParam(':KEY', $key);
$stmt->bindParam(':VALUE', $value);
$stmt->execute();
}

如果您有 150 个不同的对,则每次更新需要 150 个查询。我将如何优化这段代码?制作一个巨大的 SQL 会使 mysql 端的工作更轻松吗?我应该考虑改变结构本身吗?

最佳答案

以此查询为指导-

INSERT INTO example
(example_id, name, value, other_value)
VALUES
(100, 'Name 1', 'Value 1', 'Other 1'),
(101, 'Name 2', 'Value 2', 'Other 2'),
(102, 'Name 3', 'Value 3', 'Other 3'),
(103, 'Name 4', 'Value 4', 'Other 4');

允许您一次插入多条记录。

如果你知道哪些记录是新的,它可以加速将它们分离成一个普通的 INSERT - mysql 必须花费额外的时间来协调 ON DUPLICATE...UPDATE 否则。

如果您只是更新,还可以考虑使用 UPDATEREPLACE

关于php - 使用 PDO 在 Mysql 中更新多个值的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12255654/

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