C 로 할 경우 한가지 문제점이 있습니다. 이부분은 사용자가 해결해야 할 부분입니다.
',",\등과 같은 특수문자의 처리인데 이것을 escape 시켜 줘야 합니다. 그렇지 않으면 에러가 나더군요. 이것을 escape 시키는 루틴을 만들어 주시기 바랍니다.
그러면 대략적인 방법은 PHP 에서와 다를바가 없습니다.
PHP 의 경우라면 다음과 같이 image 파일을 읽어 들입니다.
$blob_content = addslashes(fread(fopen($bin_file_name,"r"),$bin_file_size));
그러니 이것을 적당히 C 로 바꾸어 주시면 됩니다.
그리고 이것을 디비에 저장할때에는 다음과 같이 합니다.
insert into $table_name values ('$blob_content');
그러니 %s 를 사용하는 것이 맞습니다. 단지 위에서 언급한 것 처럼 특수문자를 escape 시켜 줘야 합니다. 이것에 대해서는 더 이상 도움을 드리지 못하겠군요. 저가 C 프로그래밍에는 익숙하지 못하여 이렇게 대략 적어 봅니다. C 에 익숙한 분이라면 이 내용을 보시면 대략적인 방법을 이해하실 것으로 믿습니다. 그럼 이만...
> 정재익님 help me help me...
> mysql 을 이용해서 c로 db에 binary data를 insert ,select하여 볼려구 하는데여...
> insert시에 data를 변수에 입력으로 받아서 그 값을 insert할려구 하는데여...
> create table a ( seq int(10), image blob );
> in_seq=10;
> in_image = aa.jpg;
> query = "insert into user ( seq, image ) values ( %d,'%s');
> sprintf(query_buffer,query,in_seq,in_image);
> len = strlen(query_buffer);
> mysql_real_query(&mysql,query,len);
> 이렇게 하니까 바이너리 데이터라서 위에서 '%s'쓰는 것이 맞는지...
> 다른 char type은 잘 되는 데여...
> binary 는 없군여...
> 많은 질문&답란에 있는 image와 binary를 찾아봤지만..
> 속시원한 대답이 없어서리...
> 제발좀 부탁드립니다...
> 속시원한 답변을 .....
> 꾸뻑..
|