Сохраните удаленный pdf файл в БД postgres с помощью php - PullRequest
1 голос
/ 11 марта 2011

У меня есть небольшой pdf (или txt, odt, doc) файл для хранения в БД Postgres с php. Я использую эти функции PHP для чтения файла:

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

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

$content = addslashes($content);

fclose($fp);

, а затем попробуйте сохранить в БД:

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

$result = @pg_query($sql);

"столбец" - это тип bytea.

Когда я выполняю скрипт с файлом PDF, я получаю следующую ошибку:

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".

Когда я выполняю скрипт с файлом doc, я получаю следующую ошибку:

ERROR: invalid input syntax for type bytea

Когда я выполняю скрипт с txt-файлом, НЕТ ошибки:

Что не так и как правильно хранить файлы?

1 Ответ

1 голос
/ 11 марта 2011

Вы пытались использовать pg_escape_string вместо addslashes? http://www.php.net/manual/en/function.pg-escape-string.php

...