Re: bytea or large object
От | Joe Conway |
---|---|
Тема | Re: bytea or large object |
Дата | |
Msg-id | 3CAB29FD.90606@joeconway.com обсуждение исходный текст |
Ответ на | bytea or large object (Jean-Christophe FABRE <jean-christophe.fabre@ensam.inra.fr>) |
Ответы |
Re: [SQL] bytea or large object
|
Список | pgsql-php |
Jean-Christophe FABRE wrote: > > Hi, > > I would like to store .pdf files in a database, which is accessed through > a PHP interface. which is the best way to store binary data? - > bytea? (with the tricky handling of escape chars) - large objects? > > thanks > > JC > > PS: I didn't found any example of scripts using bytea in PHP, does someone > has some? Here's an escape script that was sent to me by Thomas T. Thai. function escByteA($binData) { /** * \134 = 92 = backslash, \000 = 00 = NULL, \047 = 39 = Single Quote * * str_replace() replaces the searches array in order. We must * process the 'backslash' character first. If we process it last, * it'll replace all the escaped backslashes from the other searches * that came before. */ $search = array(chr(92), chr(0), chr(39)); $replace = array('\\\134', '\\\000', '\\\047'); $binData = str_replace($search, $replace, $binData); return $binData; } There is also a function built in to PHP 4.1.2, available if you're using PostgreSQL 7.2, called pg_escape_bytea. Read the pdf file into a string, then use either of these to escape the string. The you can do a simple SQL insert. To retrieve the original files, use stripcslashes() to restore the query result string. Hope this helps, Joe
В списке pgsql-php по дате отправления: