Acces la sistemul de fișiere folosind SQL

Tocmai am întâlnit o opțiune frumoasă în MySQL de a intra în sistemul de fișiere și de a obține informații valoroase, de exemplu despre existența fișierelor și folderelor sau a conținutului acestora. Acest lucru poate fi foarte util ca o alternativă la funcția php fișier_există , deoarece informațiile despre existența fișierului (fișierelor) pot fi utilizate în continuare în interogare pentru funcții de sortare și agregare ulterioare.


Dacă utilizatorul de baze de date asociat are privilegiul FILE , puteți utiliza comanda

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

În timpul interogării nu numai că verificați dacă există un fișier, ci și citiți conținutul acestuia.

Pe sistemele Windows trebuie remarcat faptul că backslashes trebuie marcate corespunzător în calea către fișier (exemplu: C: \\ Windows \\ System32 \\ drivers \\ etc \\ hosts). Aspectul de securitate nu ar trebui, de asemenea, să nu fie complet ignorat, deoarece, atunci când privilegiul FILE este acordat, accesul la baza de date înseamnă automat acces la restul sistemului de fișiere.

Pentru a vă asigura că nu numai valorile NULL sunt returnate, trebuie să vă asigurați că utilizatorul care rulează MySQL are drepturi de citire.

Pentru a accesa și fișiere mari, proprietatea globală „max_allowed_packet”, care este setată la 1 MB, trebuie mărită.

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

Acum puteți (după repornirea serverului) să accesați fișiere cu dimensiuni de până la 512 MB.

Înapoi