2014-06-10 2 views
0

나는이 질문이 많이 제기되는 것을 볼 수있다. 나는 사람들이 그들에게 도움이되었지만 여전히 효과가 없다고 대답했다. 나를. 가변 개수의 요소를 DB에 삽입하려고합니다. 여기 내 코드는 다음과 같습니다 :MySQL에서 PHP로 MySQL을 여러 개 삽입하는 것은 나를 위해 일하지 않지만 다른 사람들을 위해 일하는 것

$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 구성 때문일 수 있습니까? 왜냐하면 다른 사람들을 위해 일하는 것 같아서 나는 다른 어떤 생각을 할 수 없기 때문입니다 ... THanks!

EDIT : 결과는 echo $ query2 : INSERT INTO relaciones (id, relacionadocon) VALUES (65, 12), (65, 26) EDIT2 : phpmyadmin을 사용하여 테이블을 만들었습니다. 2 개의 테이블이 있습니다. 첫 번째 정보는 정보를 등록하고 자동 증가 ID를 사용합니다. 그래서 열은 ID, 제목 및 설명입니다. 그러나 모든 의견은 하나 이상의 의견과 관련이 있습니다. 그래서 ID와 RelatedTo라는 두 개의 열이있는 다른 테이블이 있습니다. 예를 들어, 주석 번호 5가 작성되면 주석 1, 2 및 3과 관련시킬 수 있습니다. 이것이 INSERT가 (5,1), (5,2), (5,3)을 통과해야하는 이유입니다. 다시 한번, (5,1) 만 있으면 작동 할 것입니다. 나는 두 번째 테이블의 ID에 기본 키를 제공하지 않았으며 첫 번째 키에만 적용했습니다.

+2

이런 종류의 것을 디버그하는 가장 쉬운 방법은 생성 된 SQL 문을 데이터베이스에서 직접 실행하고 거기에서 작동하는지 확인하는 것입니다. – andrewsi

+0

보고 된 오류는 무엇입니까? – Loenix

+0

당신이 생성하는 것을 볼 수 있도록이 문장의 결과를 보여줍니다. 'echo $ query2;' – RiggsFolly

답변

0

나는 ID 필드가 기본 키이고 쓰여서는 안된다고 생각합니다. 결과를보기 위해 phpmyadmin 내의 INSERT INTO relaciones (id, relacionadocon) VALUES (65, 12), (65, 26)을 시도해 볼 수 있습니까?

관련 문제