Di MySQL, LOAD_FILE() fungsi membaca file dan mengembalikan isinya sebagai string.
Sintaks
Sintaksnya seperti ini:
LOAD_FILE(file_name)
Dimana file_name adalah path lengkap ke file.
Contoh
Berikut adalah contoh di mana saya memilih konten dari file:
SELECT LOAD_FILE('/data/test.txt') AS Result; Hasil:
+------------------------------------------+ | Result | +------------------------------------------+ | This text is all that the file contains! | +------------------------------------------+
Contoh Basis Data
Berikut adalah contoh tampilan kueri saat memasukkan konten file ke dalam database:
INSERT INTO MyTable (FileId, UserId, MyBlobColumn)
VALUES (1, 20, LOAD_FILE('/data/test.txt'));
Dalam hal ini, kolom MyBlobColumn memiliki tipe data BLOB (yang memungkinkannya menyimpan data biner).
Dan sekarang sudah ada di database, kita bisa memilihnya:
SELECT MyBlobColumn FROM MyTable WHERE UserId = 20;
Hasil:
+------------------------------------------+ | MyBlobColumn | +------------------------------------------+ | This text is all that the file contains! | +------------------------------------------+
Jika File Tidak Ada
Jika file tidak ada, NULL dikembalikan:
SELECT LOAD_FILE('/data/oops.txt') AS Result; Hasil:
+--------+ | Result | +--------+ | NULL | +--------+
Lebih Banyak Alasan Anda Mungkin Mendapatkan NULL
Anda juga akan mendapatkan NULL salah satu kondisi berikut tidak terpenuhi:
- File harus berada di host server.
- Anda harus memiliki
FILEhak istimewa untuk membaca file. Seorang pengguna yang memilikiFILEhak istimewa dapat membaca file apa pun di host server yang dapat dibaca dunia atau dibaca oleh server MySQL. - File harus dapat dibaca oleh semua orang dan ukurannya kurang dari
max_allowed_packetbyte. Berikut cara memeriksanya:SHOW VARIABLES LIKE 'max_allowed_packet';
Hasil saya:
+--------------------+----------+ | Variable_name | Value | +--------------------+----------+ | max_allowed_packet | 67108864 | +--------------------+----------+
- Jika
secure_file_privvariabel sistem disetel ke nama direktori yang tidak kosong, file yang akan dimuat harus berada di direktori tersebut. Berikut cara memeriksanya:SHOW VARIABLES LIKE 'secure_file_priv';
Hasil saya:
+------------------+--------+ | Variable_name | Value | +------------------+--------+ | secure_file_priv | /data/ | +------------------+--------+
Dalam contoh ini, saya hanya dapat membaca file dari /data/ direktori.