我可以看到这个问题被问了很多,我尝试遵循一些人们说对他们有用的答案,但仍然对我不起作用。 我想在数据库中插入可变数量的元素。这是我的代码:
$actual_id = $db->insert_id;
$sql = array();
foreach( $relacionado as $row ) {
$sql[] = '('.$actual_id.', '.$row.')';
}
$query2 = 'INSERT INTO relaciones (id, relacionadocon) VALUES '.implode(', ', $sql);
echo $query2;
$result2 = $db->query($query2);
if($result2){
echo "<p>".$db->affected_rows."fields inserted</p>";
}else{
echo "<p>Error</p>";
}
问题是,当我只给它一个元素时,它会起作用,但当有更多元素时,它会返回错误。我尝试在元素之间添加“,”而不是“,”,但没有任何反应...... 可能是MySQL配置的原因?因为我无法思考其他任何事情,因为它似乎对其他人有用...... 谢谢!
编辑:这是 echo $query2 的结果:INSERT INTO relaciones (id, relacionadocon) VALUES (65, 12), (65, 26) 编辑2:我使用 phpmyadmin 创建了该表。有2张 table 。第一个注册信息并使用自动递增的 ID。因此,列是 ID、标题和评论。但每条评论都与 1 个或多个评论相关。这就是为什么另一个表有 2 列:ID 和RelatedTo。例如,当创建注释编号 5 时,您可以将其与注释 1、2 和 3 相关联。这就是 INSERT 应该通过的原因:(5,1)、(5,2)、(5,3)。再说一次,如果我只有 (5,1),它就会起作用。我没有为第二个表的 ID 提供主键,只为第一个表提供主键。
最佳答案
我认为 ID 字段是主键,不应该被写入。您可以尝试在 phpmyadmin 中运行 INSERT INTO relaciones (id, relacionadocon) VALUES (65, 12), (65, 26) 看看结果是什么?
关于php - 使用 PHP 到 MySQL 的多次插入不适合我,但适合其他人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24147574/