Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana Fungsi LOAD_FILE() Bekerja di MySQL

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 memiliki FILE 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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ruby gem mysql2 gagal menginstal

  2. Bagaimana cara mengakses server jarak jauh dengan klien phpMyAdmin lokal?

  3. Menginstal MySQL di CentOS 7

  4. Bagaimana cara menggunakan pernyataan yang disiapkan mysqli?

  5. Berapa ukuran kolom int(11) di mysql dalam byte?