테스트 사이트 - 개발 중인 베타 버전입니다

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

지솩 3년 전 조회 1,843
</code></pre>

<p> </p>

<pre>
<code>$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)";</code></pre>

<p><code>

 

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

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

답변 4개

채택된 답변
+20 포인트
그누위즈

</p>

<p>$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)";</p>

<p>

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

답변에 대한 댓글 1개

지솩
3년 전
와.. 감사합니다. 항상 많은 도움 받고 있습니다 ㅠㅠ

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

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

여유가 된다면

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

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

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

3년 전
$keys .= $key.',';
$values .= "'".$value."',";

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

저기 앞에 

if($key != "") {

$keys .= ",";

$values .= ",";

}

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

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

답변에 대한 댓글 1개

지솩
3년 전
답변 너무 감사합니다 많은 도움 되었습니다!

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

ahckdhls
3년 전

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

</p>

<pre>
<code>$keys = rtrim($keys, ',');
$values = rtrim($values, ',');
$query = "INSERT INTO mytable ($keys) VALUES ($values)";</code></pre>

<p>

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

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

답변에 대한 댓글 1개

지솩
3년 전
답변 너무 감사합니다 많은 도움 되었습니다!

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

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

로그인