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
FILE
hak istimewa untuk membaca file. Seorang pengguna yang memilikiFILE
hak 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_packet
byte. Berikut cara memeriksanya:SHOW VARIABLES LIKE 'max_allowed_packet';
Hasil saya:
+--------------------+----------+ | Variable_name | Value | +--------------------+----------+ | max_allowed_packet | 67108864 | +--------------------+----------+
- Jika
secure_file_priv
variabel 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.