csv로 DB에 입력할때 필드 내용에 있는 콤마와 쌍따옴표에 대한 처리문제

· 2013-06-19 (수) 02:55:41 · 8348 · 2
csv로 DB에 입력할때

1. 필드 내용에 콤마가 있을때
제대로 입력이 되질않습니다.
이럴때 어떻게 하면 제대로 입력할수 있을까요?

2. 필드에 쌍따옴표가 있을 경우
insert시 필드맨앞과 맨뒤에 쌍따옴표가 하나씩 더 들어가 있습니다.

addslashes, stripslashes 바꿔봐가며
이리저리 다해보고 찾는다고 다 찾아봤는데 해결을 못하겠습니다 ㅠㅠ

질문이 제대로 된건지 모르겠습니다.
고수분들의 가르침 부탁드립니다.

----------------------------------------------------------------------

csv 업로드처리하는 문서의 내용입니다.

$csvLoad = file($_FILES['fr_gd_id']['tmp_name']);
$csvArray = split("\n",implode($csvLoad));

for($i=1;$i<count($csvArray)-1;$i++) {
$xinfo=explode(",", $csvArray[$i]);
$xIDX=$xinfo[0]; // IDX
$xc_code=$xinfo[1]; // 카테고리코드

....


$xg_status=$xinfo[31]; // 승인여부

$sql = "select count(*) as cnt from g4_goods where idx='$IDX' ";
$row2 = sql_fetch($sql);
if($row2[cnt]>0){
$sql = "update g4_goods set
c_code='$xc_code',

....


g_status='$xg_status'
where idx='$xIDX' limit 1";
}else{

IDX가 없을 경우....


g_status='$xg_status' ";
}
sql_query($sql);
}
|

댓글 2개

http://kr1.php.net/manual/kr/function.fgetcsv.php

이걸로 한번 처리해보세요.
1. 애초에 내용에 콤마가 있을 경우 csv로 하시면 안됩니다. 구분자를 콤마가 아니라 필드내용에 없는 문자를 사용해야겠죠. 이건 데이터를 모르기에 더이상 언급은 할 수 없겠네요.

2. sql_query("insert into 테이블 set field1='".mysql_real_escape_string($field)."'"); 처럼 mysql_real_escape_string 함수를 사용하시면 됩니다
댓글을 작성하시려면 로그인이 필요합니다.

그누4 질문답변

66,531건

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
13-06-19 조회 1,716
13-06-19 조회 1,634
13-06-19 조회 1,812
13-06-19 조회 1,121
13-06-19 조회 1,037
13-06-19 조회 1,087
13-06-19 조회 802
13-06-19 조회 1,663
13-06-19 조회 1,060
13-06-19 조회 1,094
13-06-19 조회 901
13-06-19 조회 1,063
13-06-19 조회 828
13-06-19 조회 1,285
13-06-19 조회 1,642
13-06-19 조회 1,641
13-06-19 조회 1,313
13-06-19 조회 1,094
13-06-19 조회 854
13-06-19 조회 8,349