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

Reply via email to