pg_unescape_bytea() 不能完全复制由 pg_escape_bytea() 创建的二进制数据的原因是,pg_escape_bytea() 函数对反斜杠 \ 和单引号 ' 进行双重转义。这会导致从 bytea 字段检索到的图像似乎已损坏。以下是用正确的方式将二进制字符串转义和解除转义到 PG bytea 字段的方法
<?php
$escaped_data = str_replace(array("\\\\", "''"), array("\\", "'"), pg_escape_bytea($data));
/* 然后使用以下方法对从 bytea 字段中获取的转义数据进行解除转义,以获取原始二进制数据 */
$original_data = pg_unescape_bytea($escaped_data));
?>
更多详细信息请访问:http://archives.postgresql.org/pgsql-php/2007-02/msg00014.php