csv로 DB에 입력할때 필드 내용에 있는 콤마와 쌍따옴표에 대한 처리문제 정보
csv로 DB에 입력할때 필드 내용에 있는 콤마와 쌍따옴표에 대한 처리문제본문
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);
}
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);
}
작성자에 의해 채택됐습니다.
1. 애초에 내용에 콤마가 있을 경우 csv로 하시면 안됩니다. 구분자를 콤마가 아니라 필드내용에 없는 문자를 사용해야겠죠. 이건 데이터를 모르기에 더이상 언급은 할 수 없겠네요.
2. sql_query("insert into 테이블 set field1='".mysql_real_escape_string($field)."'"); 처럼 mysql_real_escape_string 함수를 사용하시면 됩니다
2. sql_query("insert into 테이블 set field1='".mysql_real_escape_string($field)."'"); 처럼 mysql_real_escape_string 함수를 사용하시면 됩니다
댓글 전체
작성자에 의해 채택됐습니다.
1. 애초에 내용에 콤마가 있을 경우 csv로 하시면 안됩니다. 구분자를 콤마가 아니라 필드내용에 없는 문자를 사용해야겠죠. 이건 데이터를 모르기에 더이상 언급은 할 수 없겠네요.
2. sql_query("insert into 테이블 set field1='".mysql_real_escape_string($field)."'"); 처럼 mysql_real_escape_string 함수를 사용하시면 됩니다
2. sql_query("insert into 테이블 set field1='".mysql_real_escape_string($field)."'"); 처럼 mysql_real_escape_string 함수를 사용하시면 됩니다