Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie verwende ich LOAD_FILE, um eine Datei in einen MySQL-Blob zu laden?

Das Handbuch besagt Folgendes:

LOAD_FILE(Dateiname)

Liest die Datei und gibt den Dateiinhalt als String zurück. Um diese Funktion nutzen zu können, muss sich die Datei auf dem Server-Host befinden, Sie müssen den vollständigen Pfadnamen zur Datei angeben und Sie müssen über das FILE-Privileg verfügen. Die Datei muss für alle lesbar und kleiner als max_allowed_packet bytes sein. Wenn die Systemvariable secure_file_priv auf einen nicht leeren Verzeichnisnamen gesetzt ist, muss sich die zu ladende Datei in diesem Verzeichnis befinden.

Wenn die Datei nicht existiert oder nicht gelesen werden kann, weil eine der vorhergehenden Bedingungen nicht erfüllt ist, gibt die Funktion NULL zurück.

Ab MySQL 5.0.19 steuert die Systemvariable character_set_filesystem die Interpretation von Dateinamen, die als Literalstrings angegeben werden.

mysql> UPDATE t
            SET blob_col=LOAD_FILE('/tmp/picture')
            WHERE id=1;

Daraus sehe ich mehr als eine Sache, die in Ihrem Fall falsch sein könnte...

  • Passieren Sie den vollständigen Pfad?
  • Sind die Berechtigungen richtig eingestellt?
  • Was gibt die Funktion zurück? NULL?
  • Haben Sie es mit der im Handbuch angegebenen Abfrage versucht?