database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 27720 게시물 읽기
No. 27720
DB에 이미지 저장
작성자
유승효(sa037)
작성일
2008-08-06 12:24
조회수
21,398

더운데 수고 많으십니다


일단 검색 두시간 해봤습니다..


검색 하면 할수록 한숨만 나오고 엄청 답답하더군요


뭐라고 말을 많이 해놨는데.. 


대부분의 답변이 검색하면 나온다..   <--나오긴 많이 나옵니다 -_-;; 뭔 말인지 도통 모르겟어요 ..


대충 blob쓰면 된다, load_file써라..


이렇게 간결 답변 밖에 없어서 정작 중요한 질의를 알 방도가 없더군요.


뭐 그래도 두가지 건졌습니다 ^^; load_file 쓰는것과.. 컬럼속성을 bolb로 하라는 것..


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


이제 본론으로 들어가서.(로컬 파일만을 사용합니다.)


테이블 생성


create table image(순번 varchar(10), data blob);


이미지 삽입 쿼리.(삽입은 하고 있는데.. 순번 입력하는 곳이 없어서 난감해하는중.. 순번을 인덱스로 사용하려고 합니다.)


Load data local infile 'c:\\tmp\\dso6054.png' into table image;


이렇게 삽입을 하고 검색을 해봣더니..


난감 하게 되더라구요 휴...


그냥 테이블이 통째로 이미지파일로 되어버리는 느낌 이랄까..


질문...


1. 파일 업로드 다운로드 형식과 같은 기능을 사용 하기 위한 쿼리는 어떻게 하나요?


2. 다른 형식으로 이미지 자체를 테이블에 저장하고 이미지를 불러오는 경우는..어떻게 하는걸까요..


잘부탁드리겠습니다

이 글에 대한 댓글이 총 8건 있습니다.

일단

create table test(
   id int NOT NULL auto_increment,
   image blob NOT NULL
);


php 이시라면


blob 로 컬럼을 만드신후

insert into test( image) 
values 
(
  addslashes(  이미지binary )
);


그런후 

select image from test;


이렇게 하셔서 사용하시면 됩니다.

php면 그냥 mysql_fetch_array로 사용하시면 됩니다.

그럼

김병석(byung82)님이 2008-08-06 18:03에 작성한 댓글입니다.

답변감사합니다...

음..PHP나 다른 프로그램을 이용하는거 보다.. 

순수 쿼리로 가능 한지요...

순수 쿼리로 하려면 addslashes(이미지binary) 와 같이 읽어들인 바이너리 데이타 값을 

변수에 넣어서 직접 대입을 할 수 있는 상황이 아니예요 ㅠㅠ

=================================================================

제가 실패했던 쿼리..

insert into test(image) values('$$##@@%%%');  일단 values안의 값이 바이너리 data라 치면..

특수한 어느 문자를 만났는지 모르겠는데.. 에러로 되어버리더군요..

유승효(sa037)님이 2008-08-06 19:09에 작성한 댓글입니다.
이 댓글은 2008-08-06 19:12에 마지막으로 수정되었습니다.

사용하고자는 언어를 부탁드립니다.


mysql reference site를 참조하면 일단 직접 쿼리보다는 Parameter를 사용해서 입력을 해야 합니다.


http://dev.mysql.com/doc/refman/5.0/en/connector-net-using-blob.html#connector-net-using-blob-writing


vb와 C# 소스도 있으니 참조해보시기 바랍니다.


김병석(byung82)님이 2008-08-06 21:41에 작성한 댓글입니다.

db에 이미지를 직접 저장하는 방식은 좋지 않습니다.


보통은 이미지 파일이 있는 파일서버를 구성하고 db에는 파일 서버의 이미지 경로를 저장하는 방식을 사용합니다.

trinity님이 2008-08-06 23:20에 작성한 댓글입니다. Edit

db에 저장한다고 해서 나쁜건 아닙니다.


어떻게 알고리즘을 작성을해서 처리를 하는가가 문제입니다.


간단한 섬메일 프로필 같은 이미지는 변경도 적으니 굳이 하드 저정해서 할 이유도 없습니다.


아마존같은 사이트도 db에 저장하는 방식을 사용합니다.


어떻게 처리할건가 방법론만 잘 정하면 됩니다.


그럼

김병석(byung82)님이 2008-08-06 23:33에 작성한 댓글입니다.

음....파라미터 입력방식 밖에 방법이 없다면..

사용할수 없는 상태가 되어버립니다.....................

왜냐하면 지금 사용하는 프로그램은 여러분들이 생각하는 언어와는 조금 차이가 있는거라.. ㅜㅜ

유승효(sa037)님이 2008-08-07 08:13에 작성한 댓글입니다.

load_file 함수를 사용하시면 돼죠....load data infile 문은 다른용도...


insert into image values (1, load_file('c:\\tmp\\dso6054.png'));


이런식으로 사용하심 됩니다.


load_file 문은...일단 Files 권한을 가지고 있어야 하며, max_allowed_packet 의 값도 연관이 있고..또한 해당 컬럼...blob 의 사이즈...그리고 또 머가 있더랑 -.ㅡa 


자세한건...패쑤~

team b(teamb)님이 2008-08-07 10:27에 작성한 댓글입니다.

헉 team님 말씀대로 하니까 되네요 ^0^!!!!

감사합니다 ;ㅁ;

이거 가지고 또 해보다가 질문 하깨요 ^^;;

유승효(sa037)님이 2008-08-07 13:17에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
27724DB 이미지 저장 및 불러오기 [2]
유승효
2008-08-07
9685
27723Mysql과 연동해 수강신청 프로그램을 만들려는데요. [1]
유재훈
2008-08-06
4630
27722mysql+asp 연동 시 한글 문제 질문입니다. [1]
유일조
2008-08-06
4429
27720DB에 이미지 저장 [8]
유승효
2008-08-06
21398
27719mysql 디비서버 이전후 varchar 사이즈 문제
비의비
2008-08-06
3630
27718mysql 케릭터셋 각각맞추기
블루엔젤
2008-08-05
3637
27717필드안의 , 문자만 없애는 방법.. [2]
부탁드립니다
2008-08-04
3843
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.022초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다