sql >> Database >  >> RDS >> Mysql

Hoe LOAD_FILE gebruiken om een ​​bestand in een MySQL-blob te laden?

De handleiding vermeldt het volgende:

LOAD_FILE(bestandsnaam)

Leest het bestand en retourneert de inhoud van het bestand als een tekenreeks. Om deze functie te gebruiken, moet het bestand zich op de serverhost bevinden, moet u de volledige padnaam naar het bestand specificeren en moet u het FILE-privilege hebben. Het bestand moet voor iedereen leesbaar zijn en moet kleiner zijn dan max_allowed_packet bytes. Als de systeemvariabele secure_file_priv is ingesteld op een niet-lege directorynaam, moet het te laden bestand zich in die directory bevinden.

Als het bestand niet bestaat of niet kan worden gelezen omdat niet aan een van de voorgaande voorwaarden is voldaan, retourneert de functie NULL.

Vanaf MySQL 5.0.19 bepaalt de systeemvariabele character_set_filesystem de interpretatie van bestandsnamen die als letterlijke tekenreeksen worden gegeven.

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

Hieruit zie ik meer dan één ding dat in jouw geval verkeerd zou kunnen zijn...

  • volg je het volledige pad?
  • zijn de rechten correct ingesteld?
  • wat geeft de functie terug? NULL?
  • heb je het geprobeerd met de vraag in de handleiding?


  1. Converteer 'time' naar 'smalldatetime' in SQL Server (T-SQL-voorbeelden)

  2. Hoe kan ik vinden welke tabellen verwijzen naar een bepaalde tabel in Oracle SQL Developer?

  3. Dag toevoegen aan tijdstempel

  4. Tabel afkappen in MySQL