pg_escape_bytea

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_escape_bytea 转义字符串以插入到 bytea 字段

说明

pg_escape_bytea(PgSql\Connection $connection = ?, string $data): string

pg_escape_bytea() 转义 bytea 数据类型的字符串。返回转义后的字符串。

Note:

SELECT bytea 类型时,PostgreSQL 返回前缀为"\"的八进制字节值(例如 \032)。用户需要手动转换为二进制格式。

本函数需要 PostgreSQL 7.2 及其更高版本。在 PostgreSQL 7.2.0 和 7.2.1 版中,如果使用了多字节支持,必须强制转换 bytea 类型。即 INSERT INTO test_table (image) VALUES ('$image_escaped'::bytea);,在 PostgreSQL 7.2.2 及其更高版本不需要强制转换。异常情况是当客户端和后端字符编码不匹配时,可能会有多字节流错误。然后用户必须强制转换 bytea 以避免此错误。

参数

connection

An PgSql\Connection instance. When connection is unspecified, the default connection is used. The default connection is the last connection made by pg_connect() or pg_pconnect().

Warning

As of PHP 8.1.0, using the default connection is deprecated.

data

包含要插入到 bytea 列中的文本或二进制数据的 string

返回值

包含转义数据的 string

更新日志

版本 说明
8.1.0 现在 connection 参数接受 PgSql\Connection 实例,之前接受 resource

示例

Example #1 pg_escape_bytea() 示例

<?php
// 连接到数据库
$dbconn = pg_connect('dbname=foo');

// 读入二进制文件
$data = file_get_contents('image1.jpg');

// 转义二进制数据
$escaped = pg_escape_bytea($data);

// 将其插入数据库
pg_query("INSERT INTO gallery (name, data) VALUES ('Pine trees', '{$escaped}')");
?>

参见