Php 使用PDO从多个数据源大容量插入
我尝试使用PHP/PDO从两个来源将行插入MySQL表,即:Php 使用PDO从多个数据源大容量插入,php,mysql,pdo,Php,Mysql,Pdo,我尝试使用PHP/PDO从两个来源将行插入MySQL表,即: 另一个表(同一数据库) PHP 我正在填充的表如下所示: Table Name : data_sink +-------+-----------+--------------+-----------+ | ID | data1 | data2 | data3 | +-------+-----------+--------------+-----------+ | 1 | text_
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 |
+-------+-----------+--------------+-----------+
其中,data1和data2取自另一个表,而data3来自PHP代码。我使用以下查询仅从表中获取数据:
$insert_rows = $db->prepare("INSERT INTO data_sink (data1, data2)
SELECT username, usergroup FROM data_origins WHERE <condition>");
有没有一种单步解决这个问题的方法,将MySQL和PHP的输入结合起来?[注意:对于每一批插入,所有行都共享一个共同的数据值3]可以像
$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();
$insert\u rows=$db->prepare(“插入到数据接收器(数据1、数据2、数据3))
从数据中选择用户名、用户组,其中“);
$insert_rows->bindParam(1,$data3);
$insert_rows->execute();
当然,这假设您的$data3对于插入的所有行都是相同的。也可以执行简单的算术运算或函数调用,以确保每一行基于$data3获得不同的值是否查看了一次更新多行的运算符?这对我没有帮助,我在选择要更新的行时没有问题,我只是在将一个参数从PHP传递到mysql查询时遇到了一个问题:)不过,选择的答案是有效的!
$update_rows = $db->prepare("UPDATE data_sink SET data3 = :data3
WHERE data3 = 'replaceme'");
$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();