SQL- ի միջոցով ֆայլային համակարգ մուտք գործելը

Վերջերս ես պատահաբար հանդիպեցի ֆայլային համակարգին մուտք գործելու և արժեքավոր տեղեկություններ, ինչպիսիք են ֆայլերի և թղթապանակների գոյությունը կամ դրանց պարունակությունը, ստանալու մի հետաքրքիր եղանակի։ Սա կարող է շատ օգտակար լինել որպես PHP ` file_exists` ֆունկցիայի այլընտրանք, քանի որ ֆայլ(եր)ի գոյության մասին տեղեկատվությունը կարող է օգտագործվել հարցման մեջ՝ հետագա տեսակավորման և ագրեգացման ֆունկցիաների համար։


Եթե տվյալների բազայի օգտագործողը ունի FILE արտոնություններ , հրամանը կարող է օգտագործվել։

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Հարցման ընթացքում ոչ միայն ստուգեք, թե արդյոք ֆայլ գոյություն ունի, այլ նաև կարդացեք դրա բովանդակությունը:

Windows համակարգերի վրա պետք է նշել, որ հետադարձ շեղերը պետք է համապատասխանաբար նշվեն ֆայլի ճանապարհին (օրինակ ՝ C: \\ Windows \\ System32 \\ վարորդները \\ և այլն \\ սերվերները): Անվտանգության ասպեկտը նույնպես չպետք է ամբողջությամբ անտեսվի, քանի որ երբ FILE արտոնությունը շնորհվում է, տվյալների բազա մուտք գործելը ինքնաբերաբար նշանակում է մուտք դեպի մնացած ֆայլային համակարգը:

Ապահովելու համար, որ ոչ միայն NULL արժեքները հետ են վերադարձվում, պետք է ապահովել, որ MySQL աշխատող օգտվողը ունենա ընթերցման իրավունքներ:

Մեծ ֆայլեր մուտք գործելու համար նույնպես պետք է ավելացվի «max_allowed_packet» գլոբալ հատկությունը, որը դրված է 1 ՄԲ-ի վրա:

mysql -u... -p...
set global max_allowed_packet = 1024 * 1024 * 512;
exit;

Այժմ կարող եք (սերվերը վերագործարկելուց հետո) մուտք գործել մինչև 512 ՄԲ չափի ֆայլեր:

Վերադառնալ