The data isn't actually being corrupted. The problem here is that
SELECT INTO OUTFILE wants to escape all of the line breaks as to make it
easy to reimport the data using LOAD DATA INFILE. You could work
around that by setting the escape character using: FIELDS ESCAPED BY '';
The total query would be:
SELECT data FROM test WHERE id=1 INTO OUTFILE "/tmp/test2.gif" LINES
ESCAPED BY '';
That seems to work pretty well for me.. However it seems to be adding
an extra line break at the end of the file for some odd reason, not sure
why.
Most people usually will just select the data and then do whatever needs
to be done in the language you are writing your application in. It
would be like a 5 line script in either perl or php. Hope this helps
you out some.
Harrison
Miles Martin wrote:
>Hello there,
>
>I have a problem that I need some help with. I am trying to insert binary
>data into a mysql database and simply retrieve it. each time I retrieve the
>data, it is corrupt. What am I doing wrong?
>
>I am running mysql 3.23.41 on Red Hat Linux release 7.2 (Enigma) Kernel
>2.4.7-10 on an i686.
>
>My table is defined as:
>
>CREATE TABLE TEST(ID TINYINT(3),DATA LONGBLOB);
>
>To insert data into the table I am using:
>
>INSERT INTO TEST VALUES(1,LOAD_FILE('/tmp/test.gif'));
>
>The data has been added. I then retrieve the data like so:
>
>select data from test where id=1 into outfile "/tmp/test2.gif";
>
>The returned file is no longer recognised as an image file by a web browser
>(Netscape). I have tried the same exercise with .mp3 files and have had the
>same problem. The files have the same size and do contain data but they are
>corrupt and cannot be read by the program that would read them.
>
>I also tried the same using a text file so that I could see what the
>difference was between the "before" and "after" inserting into mysql. See
>links below for "before" and "after" examples of text file and gif image.
>
>Gif image...
>http://www.toffeedog.com/personal/mysqlprob/before.gif
>http://www.toffeedog.com/personal/mysqlprob/after.gif
>
>Text file...
>http://www.toffeedog.com/personal/mysqlprob/before.txt
>http://www.toffeedog.com/personal/mysqlprob/after.txt
>
>I look forward to your reply,
>
>Miles
>
>mailto:[EMAIL PROTECTED]
>
>
>---------------------------------------------------------------------
>Before posting, please check:
> http://www.mysql.com/manual.php (the manual)
> http://lists.mysql.com/ (the list archive)
>
>To request this thread, e-mail <[EMAIL PROTECTED]>
>To unsubscribe, e-mail <[EMAIL PROTECTED]>
>Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php
>
>
>
>
>
>
---------------------------------------------------------------------
Before posting, please check:
http://www.mysql.com/manual.php (the manual)
http://lists.mysql.com/ (the list archive)
To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php