Deyək ki mən hər hansı bir şəkli bazada saxlamaq istəyirəm.
Table yaradıram:
1 | CREATE TABLE blob_test( |
2 | id INT NOT NULL AUTO_INCREMENT, |
3 | name VARCHAR(10), |
4 | file_type VARCHAR(10), |
5 | my_file BLOB NOT NULL, |
6 | PRIMARY KEY(id) |
7 | ); |
Daha sonra İnsert edirəm:
1 | INSERT INTO blob_test(name,file_type,my_file) VALUES ('mysql','jpeg', LOAD_FILE('C:/Program Files/MySQL/MySQL Server 5.5/blog_output.png')); |
Və daha sonra da Select :
1 | SELECT * FROM blob_test; |
Nəticə
1 | mysql> select * from blob_test\G |
2 | *************************** 1. row *************************** |
3 | id: 1 |
4 | name: mysql |
5 | file_type: jpeg |
6 | my_file: ëPNG |
7 | → |
8 | IHDR <img draggable="false" role="img" class="emoji" alt=" |
9 | ]á´[¬ÆJj§┤·ÿü▼ÒÚûTÛÀ̬_òJ¦╩∟ İ&;¶ └~┴ì<img draggable="false" role="img" class="emoji" alt=" |
10 | ì<img draggable="false" role="img" class="emoji" alt=" |
11 | fÅ►B╚£0{═,f █O?©?■²W¸[»A ╔²▀´¦▼_▀'o¹▀ş■ä┘#ä►→-╠^│ú┘ ┘}²·Ì²±§o¯¸í┘°?■V→}Ñ>#O9÷í<img draggable="false" role="img" class="emoji" alt=" |
12 | ┘kv0¹╩îgÚS═¥▀☼Ø!äû+╠^3ªìÙK?© ³%qئ3¹» ↑╣ş7¿8t"!ä►Z«0{═$│ ÿğ▼<img draggable="false" role="img" class="emoji" alt=" |
13 | zZ═ÓB\╬?t"!ä►Z«0{═h│oıw─Ñx▀┤ §Q¹╔%Ç║╠C'<img draggable="false" role="img" class="emoji" alt=" |
14 | │Îî6¹▀ 5ÕR╝6ÿ▒âäÿ_■Û■[/<img draggable="false" role="img" class="emoji" alt=" |
15 | │Îî4¹®Ù¯r `┬~Êì½%ÇC'<img draggable="false" role="img" class="emoji" alt=" |
16 | │Îì`÷ ▀¡☼«█O┘»[«¼È¹│╠eYµ▓│╠}¨9s_.¶ â╔pò╣¹ø´Ù,sÎWËô¬)┐:NR¨Án2¸6a█Ù¼-#øz¥ëeıU_³ÛX°´?Ş´9&ŞK |
başa düşüləndi
BLOB faylı database-e insert edirəm bu heç. Sual belədir:
Yalnız SQL, MySQL Stored Routine və yaxud PL\SQL və yaxud hər hansı database-də gedən (proqramlaşdırma dilindən istifadə etmədən) əməliyyat nəticəsində bu faylı geri oxuyub photo şəklində başqa bir directory-yə yaza bilərəm mi?
Verilmiş cavablar və yazılan şərhlər (10 cavab var)
0
sizin məlumatı oxuma tərziniz səhvdi axı.
1
SELECT * FROM blob_test;
Yuxarıdakı kod blob_test cədvəlində olan bütün qeydləri göstərir.
siz konkiret lazım olan şəkilin nəyinisə (məsələn id) bildirməlisiniz.
1
SELECT * FROM blob_test where id=1;
Yuxarıda id nömrəsi 1 olan qeydi seçəcək. Ancaq mən bilən mysql dilinin belə imkanı yoxduki şəkli çıxara bilsin. SQL dilin belə bir imkanı olmalıdı.
0
Bura baxa bilərsən
0
Əgər mənim table-ımda cəmi bir qeyd varsa və onun İD-si 1-dirsə onda where id=1 yazmağa ehtiyac yoxdu
Məncə SQL-in belə bir imkanı yoxdur. amma pl\sql və yaxud mysql routine-lə bunu etmək olar amma necə?
0
Salam. Yaza bilərsiniz. Amma return edəndə header JPEG kimi vermək lazımdır, sizin kodda əsas çatmayan budur. Məsələn
1
<img src="image.php?id=1" alt="" />
vermisinizsə, image php faylında üst hissədə header(“Content-Type: image/jpeg”); belə bir şey olmalıdır, ardıyca da sizin mysql-dən oxuduğunuz data.
P.S. Bazada şəkli saxlamaq çox əlverişsiz bir şeydir. Ondansa sadece path-ını saxlayın, özünü faylssistemə atın.
0
php və yaxud java-da bunu etmək olur
maraq üçün…
mən sırf database-in öz imkanları ilə bunu etmək istəyirdim
0
Məncə yenədə id bildirilməlidir. SQL 100% bunu bacarır. İnternetdəki məlumatlara görə MySQL da bunu edə bilir. Yuxarıdakı link də izah olunub.
0
ID olsun ya olmasın nəticə eynidir. Əgər 50-60 dənə şəkil olsaydı mən də bilirəm ki, İD-ni qeyd etmək lazım idi ki yalnız 1 photo çıxsın. indiki halda cəmi 1 qeyd var table-da. ona görə də:
SELECT * FROM blob_test; = SELECT * FROM blob_test where id=1;
Sən verdiyin link isə documentation linkidi. 11.4.3. The BLOB and TEXT Types — BLOB və TEXT-in nə olduğunu izah edir. Orda mənim istədiyim yoxdu axı.
SQL ilə etmək olursa onda necə? MySQL Stored Routine-lə etmək olarsa o da necə?
2
1
http://stackoverflow.com/questions/4646533/exporting-blob-from-mysql-database-to-file-with-only-sql
buradan baxin
1
hərdən qoğal əmiyə də müraciət edin
Sual verin
Cavab verin