sql >> Databasteknik >  >> RDS >> Mysql

Hur använder man LOAD_FILE för att ladda en fil till en MySQL-blob?

manualen anger följande:

LOAD_FILE(filnamn)

Läser filen och returnerar filinnehållet som en sträng. För att använda den här funktionen måste filen finnas på servervärden, du måste ange det fullständiga sökvägsnamnet till filen och du måste ha FILEprivilegiet. Filen måste vara läsbar av alla och dess storlek är mindre än max_allowed_packet byte. Om systemvariabeln secure_file_priv har ett icke-tomt katalognamn, måste filen som ska laddas placeras i den katalogen.

Om filen inte finns eller inte kan läsas på grund av att något av de föregående villkoren inte är uppfyllt, returnerar funktionen NULL.

Från och med MySQL 5.0.19 styr systemvariabeln character_set_filesystem tolkningen av filnamn som anges som bokstavliga strängar.

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

Av detta ser jag mer än en sak som kan vara fel i ditt fall...

  • passerar du hela vägen?
  • är behörigheter korrekt inställda?
  • vad returnerar funktionen? NULL?
  • har du testat det med frågan som anges i manualen?


  1. Hur förser man en API-klient med 1 000 000 databasresultat?

  2. Få handtag till inbyggd Oracle Connection i Hibernate 4 för att köra en lagrad proc

  3. Hur kontrollerar jag om trigger finns i PostgreSQL?

  4. Utveckla PostgreSQL för Windows, del 3