mysql c 프로그래밍...
글쓴이: peccavi / 작성시간: 목, 2004/02/12 - 2:19오후
안녕하세요.
c로 mysql 프로그래밍을 하고 있는데요
타입이 blob 인 컬럼에 데이터를 인서트 하려고 합니다.
근데 LOAD_FILE()을 이용한 파일 업로드가 아니라
용량이 큰 변수를 쿼리로 날려서 인서트 하려고 하면..
쿼리가 상당히 길어지잖아요..
예를 들면,
char data[10000] 이라는 변수가 있는데
이 data값을 blob 컬럼에 인서트 하려면
어떻게 해야 되는지요..
그냥 쿼리로
sprintf(query, "insert into member values ('%s')", data);
이렇게 쓰면, 쿼리 자체 길이가 10000이 넘어가는거지요?
그렇게 하면 문제가 생길것 같아서.. 다른 방법을 찾아보고 있는건데..
에구.. 글이.. --;;
blob타입 컬럼에 LOAD_FILE을 이용하지않고 문제없이 대형 데이터를
인서트 하는 방법을 알고 싶습니다.
답변좀 부탁드릴께요.. ㅠㅠ
Forums:
맞는지 모르겠지만...
MySQL은 데이터 insert시 따로 지원되는 API가 없는 걸로
알고 있습니다. 오라클은 따로 지원하는 것들이 있다는군요.
그냥 님이 생각하신 방법대로 insert 시켜야 될 듯 합니다.
머 10000바이트 정도야 별로 크게 느껴지지는 않네요. ㅡ,.ㅡ;
수고하세요~
H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!
답변 감사합니다.. 그냥 해야겠네요.. ^^
답변 감사합니다.. 그냥 해야겠네요.. ^^
----
jai guru deva om...
blob데이터를 부을 때, 바이너리 데이터인 경우에 그냥 하시면 널스트링
blob데이터를 부을 때, 바이너리 데이터인 경우에 그냥 하시면 널스트링을 만나서 제대로 동작하지 않는 경우가 있습니다.
mysql_real_escape_string()
로 인코딩해서 쿼리문을 만들어야 잘 들어갑니다.
(다시 말해 쿼리문으로 만들면 인코딩/디코딩 오버헤드가 추가 됩니다.)
더 자세한 내용은 아래의 링크에 첨부된
pdf 파일에서 "Working with Image Data"
부분을 참조하세요.
http://www.ezdoum.com/stories.php?story=03/04/07/4145170
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기