1

I have little pdf (or txt, odt, doc) file to be store in Postgres DB with php. I use this php functions to read file:

$fp = fopen($name, 'rb');

$content = fread($fp, filesize($name));

$content = addslashes($content);

fclose($fp);

and then try to store in db:

$sql = "insert into Table(column) values ('$content'::bytea)";

$result = @pg_query($sql);

"column" is bytea type.

When I execute the script with pdf file, I get the follow error:

ERROR: invalid byte sequence for encoding "UTF8": 0xe2e3cf HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".

When I execute the script with doc file, I get the follow error:

ERROR: invalid input syntax for type bytea

When I execute the script with txt file, NO error:

What's wrong and what is the proper way to store files?

1 Answer 1

1

Have you tried using pg_escape_string instead of addslashes? http://www.php.net/manual/en/function.pg-escape-string.php

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks, pg_escape_bytea() instead of addslashes() is exactly what I wanted.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.