강

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

· 2013-06-19 (수) 02:55:41 · 8355 · 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,726
13-06-19 조회 1,642
13-06-19 조회 1,822
13-06-19 조회 1,133
13-06-19 조회 1,045
13-06-19 조회 1,093
13-06-19 조회 810
13-06-19 조회 1,668
13-06-19 조회 1,066
13-06-19 조회 1,100
13-06-19 조회 909
13-06-19 조회 1,074
13-06-19 조회 835
13-06-19 조회 1,296
13-06-19 조회 1,654
13-06-19 조회 1,651
13-06-19 조회 1,324
13-06-19 조회 1,102
13-06-19 조회 860
13-06-19 조회 8,356