Baru-baru ini saya terjumpa satu cara yang menarik untuk mengakses sistem fail dan mendapatkan maklumat berharga, seperti kewujudan fail dan folder atau kandungannya. Ini boleh menjadi sangat membantu sebagai alternatif kepada fungsi PHP ` file_exists` , kerana maklumat tentang kewujudan fail boleh digunakan dalam pertanyaan untuk fungsi pengisihan dan pengagregatan selanjutnya.
Dengan syarat pengguna pangkalan data yang berkaitan mempunyai keistimewaan FILE , arahan tersebut boleh digunakan
SELECT LOAD_FILE(*PFAD ZUR DATEI*)
Semasa pertanyaan tidak hanya memeriksa sama ada fail ada, tetapi juga membaca kandungannya.
Pada sistem Windows perlu diingatkan bahawa garis miring terbalik mesti ditandakan dengan sewajarnya di jalan ke fail (contoh: C: \\ Windows \\ System32 \\ driver \\ etc \\ host). Aspek keselamatan juga tidak boleh diabaikan sepenuhnya, karena ketika hak istimewa FILE diberikan, akses ke pangkalan data secara automatik berarti akses ke sistem fail yang lain.
Untuk memastikan bahawa bukan sahaja nilai NULL dikembalikan, ia juga harus memastikan bahawa pengguna yang menjalankan MySQL mempunyai hak membaca.
Untuk mengakses fail besar, harta global "max_allowed_packet", yang ditetapkan menjadi 1 MB, harus ditingkatkan.
mysql -u... -p... set global max_allowed_packet = 1024 * 1024 * 512; exit;
Anda kini boleh (setelah memulakan semula pelayan) mengakses fail yang berukuran hingga 512 MB.