insert into 할때 컬럼명과 값을 foreach로 채택완료

Copy
$keys = '';
$values = '';
foreach ($mysql_field_array as $key => $value) {
    $keys = $key.',';
    $values = "'".$value."',";
}
$keys = rtrim($keys, ',');
$values = rtrim($values, ',');
$query = "INSERT INTO mytable ($keys) VALUES ($values)";

 

이와 같이 구현을 했는데 마지막 값만 들어가는데 어떤부분이 잘못된건지 궁금합니다

답변 4개

채택된 답변
+20 포인트

Copy
$keys = '';
$values = '';
foreach ($mysql_field_array as $key => $value) {
    $keys .= $key.',';
    $values .= "'".$value."',";
}
$keys = rtrim($keys, ',');
$values = rtrim($values, ',');
$query = "INSERT INTO mytable ($keys) VALUES ($values)";
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

와.. 감사합니다. 항상 많은 도움 받고 있습니다 ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

select한 것을 다시 insert하는 것인가요?

여유가 된다면

insert ... select 구문도 한번 살펴 보세요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

$keys .= $key.',';
$values .= "'".$value."',";

으로 = 앞에 .을 붙여 주시고 ,를 바로 뒤에 붙이는게 

저기 앞에 

if($key != "") {

$keys .= ",";

$values .= ",";

}

이런식으로 해주시면 될거 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 너무 감사합니다 많은 도움 되었습니다!

댓글을 작성하려면 로그인이 필요합니다.

foreach 바깥쪽에서 insert 하셨습니다

Copy
$keys = rtrim($keys, ',');
$values = rtrim($values, ',');
$query = "INSERT INTO mytable ($keys) VALUES ($values)";

요기를 foreach 안쪽으로 넣어주세요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 너무 감사합니다 많은 도움 되었습니다!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고