gpt4 book ai didi

php - 使用 PDO 从多个数据源批量插入

转载 作者:可可西里 更新时间:2023-11-01 08:03:34 26 4
gpt4 key购买 nike

我正在尝试使用 PHP/PDO 从两个来源将行插入到 MySQL 表中,即:

  1. 另一个表(同一个数据库)
  2. PHP

我正在填写的表格如下所示:

   Table Name : data_sink

+-------+-----------+--------------+-----------+
| ID | data1 | data2 | data3 |
+-------+-----------+--------------+-----------+
| 1 | text_1 | aa | 8 |
| 2 | text_2 | bb | 8 |
| 3 | text_3 | cc | 8 |
| 4 | text_4 | dd | 8 |
| 5 | text_5 | ee | 8 |
| 6 | text_6 | ff | 8 |
+-------+-----------+--------------+-----------+

其中,data1data2 取自另一个表,而data3 来自PHP 代码。我使用以下查询仅从表中获取数据:

$insert_rows = $db->prepare("INSERT INTO data_sink (data1, data2)
SELECT username, usergroup FROM data_origins WHERE <condition>");

我不确定如何将 data3 添加到此查询中。我找到了解决方法,方法是向我的原始表添加另一列,并用值“replaceme”填充所有行,然后按如下方式运行查询:

$insert_rows = $db->prepare("INSERT INTO data_sink (data1, data2, data3)
SELECT username, usergroup, temp_value FROM data_origins WHERE <condition>");

然后我运行一个额外的查询,在 data3 设置为“replaceme”的地方更新表

    $update_rows = $db->prepare("UPDATE data_sink SET data3 = :data3 
WHERE data3 = 'replaceme'");

是否有解决此问题的单一步骤方法,以组合来自 MySQL 和 PHP 的输入? [注意:对于每批插入,所有行共享 data3 的公共(public)值]

最佳答案

可以很简单

$insert_rows = $db->prepare("INSERT INTO data_sink (data1, data2, data3)
SELECT username, usergroup, ? FROM data_origins WHERE <condition>");

$insert_rows->bindParam(1, $data3);
$insert_rows->execute();

当然,这假定您的 $data3 对于要插入的所有行都是相同的。也可以进行简单的算术运算或函数调用,以确保每一行根据 $data3 获得不同的值

关于php - 使用 PDO 从多个数据源批量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40971969/

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