使用PHP到MySQL的多次插入不适合我,但为其他人工作

时间:2014-06-10 17:42:53

标签: php mysql insert

我可以看到这个问题被问了很多,我已经尝试过一些人们认为对他们有用的答案,但它仍然不适合我。 我想在我的数据库中插入可变数量的元素。这是我的代码:

$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>";
}

当我只给它一个元素但是当有更多元素时返回错误时,它是有效的。我尝试添加&#34;,&#34;而不是&#34;,&#34;元素之间但没有任何反应...... 可能是因为MySQL的配置?因为我似乎无法思考其他任何因素,因为它似乎对其他人有用...... 谢谢!

编辑:这是echo $ query2的结果:INSERT INTO relaciones(id,relacionadocon)VALUES(65,12),(65,26) EDIT2:我使用phpmyadmin创建了表。有2个表。第一个注册信息并使用自动增加ID。因此,列是ID,标题和注释。但每条评论都与一条或多条评论有关。这就是为什么有另一个表有2个列:ID和RelatedTo。例如,当创建注释编号5时,可以将其与注释1,2和3相关联。这就是INSERT应该传递的原因:(5,1),(5,2),(5,3)。再一次,如果我只有(5,1),那就行了。我没有给第二个表的ID提供主键,只给第一个表。

1 个答案:

答案 0 :(得分:0)

我认为ID字段是主键,不应该写入。你能尝试在phpmyadmin中运行INSERT INTO relaciones(id,relacionadocon)VALUES(65,12),(65,26)来查看结果是什么吗?