我正在使用SELECT从MySQL中检索某些项目。在获取语句时,我想获取每个返回的行并将其中的某些信息移动到另一个表中。
$stmt = $mysqli->prepare("SELECT info FROM table");
$stmt->execute();
$stmt->bind_result($info);
$stmt2 = $mysqli->prepare("INSERT INTO another_table (info) VALUES (?)");
$stmt2->bind_param('s', $info);
while ($stmt->fetch()) {
//$info is different for each loop
$stmt2->execute();
}
这不起作用。 $stmt2->bind_param()
后没有任何事情发生。但是,我能够在while循环中使用$info
填充数组,然后使用相同的数据库代码将数组中的信息插入到另一个表中。但是,阵列可能会变得太大并导致内存问题。
答案 0 :(得分:3)
嗯,你通常把bind_param
放在循环中。但是您可能只能在一个查询中执行此操作:
INSERT INTO another_table(info) SELECT info FROM table;